如何将命令行参数转换为 bash 脚本数组?
我想采取这个:
./something.sh arg1 arg2 arg3
并将其转换为
myArray=( arg1 arg2 arg3 )
这样我就可以在脚本中使用 myArray 来进一步使用。
上一篇文章很接近,但没有讨论如何创建数组:如何解析 Bash 中的命令行参数?
我需要将参数转换为常规 bash 脚本数组;我意识到我可以使用其他语言(例如 Python),但需要在 bash 中执行此操作。我想我正在寻找“附加”功能或类似的功能?
更新:我还想问如何检查零参数并分配默认数组值,并且感谢下面的答案,能够使其正常工作:
if [ "$#" -eq 0 ]; then
myArray=( defaultarg1 defaultarg2 )
else
myArray=( "$@" )
fi
实际上你的命令行参数是几乎已经像一个数组了。至少,你可以治疗$@
变量很像数组。也就是说,您可以将其转换为实际的数组,如下所示:
myArray=( "$@" )
如果您只想输入一些参数并将它们输入到$@
价值、用途set
:
$ set -- apple banana 'kiwi fruit'
$ echo "$#"
3
$ echo "$@"
apple banana kiwi fruit
$ for arg in "${@}"; do echo -n ", $arg"; done
, apple, banana, kiwi fruit
了解如何使用参数结构在 POSIX sh 中特别有用,因为它没有像数组那样的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)