开发者社区> 问答> 正文

将命令行参数转换为Bash中的数组

如何将命令行参数转换为bash脚本数组?

我要这样:

./something.sh arg1 arg2 arg3 并将其转换为

myArray=( arg1 arg2 arg3 ) 这样我就可以在脚本中使用myArray进行进一步使用。

上一则SO文章即将结束,但是没有涉及如何创建数组:如何在Bash中解析命令行参数?

我需要将参数转换为常规的bash脚本数组;我意识到我可以使用其他语言(例如Python),但需要在bash中执行此操作。我想我正在寻找“附加”功能或类似的东西?

更新:我还想问一下如何检查零个参数并分配一个默认的数组值,并且由于下面的答案,所以能够使它工作:

if [ "$#" -eq 0 ]; then myArray=( defaultarg1 defaultarg2 ) else myArray=( "$@" ) fi

问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 00:46:34 486 0
1 条回答
写回答
取消 提交回答
  • 实际上,您的命令行参数实际上已经像一个数组。至少,您可以将$@变量视为数组。也就是说,您可以将其转换为如下所示的实际数组:

    myArray=( "$@" ) 如果只想输入一些参数并将其输入$@值,请使用set:

    $ set -- apple banana "kiwi fruit" $ echo "$#" 3 $ echo "$@" apple banana kiwi fruit 理解如何使用参数结构在POSIX sh中特别有用,因为POSIX sh没有像数组那样的东西。

    问题来源于stack overflow

    2020-02-07 00:46:55
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载