微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

arrays – Bash:将命令行参数转换为数组

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

我想采取这个:

./something.sh arg1 arg2 arg3

并将其转换为

myArray=( arg1 arg2 arg3 )

所以我可以使用myArray在脚本中进一步使用。

这以前的SO post接近,但没有进入如何创建一个数组:How do I parse command line arguments in bash?

我需要将参数转换为常规的bash脚本数组;我意识到我可以使用其他语言(例如Python),但需要在bash中这样做。我想我在寻找一个“append”函数或类似的东西?

更新:我还想问如何检查零参数和分配一个认数组值,感谢下面的答案,能够得到这个工作:

if [ "$#" -eq 0 ]; then
  myArray=( defaultarg1 defaultarg2 )
else
  myArray=( "$@" )
fi
实际上你的命令行参数实际上就像一个数组已经。至少,你可以把$ @变量看作一个数组。也就是说,你可以把它转换成一个实际的数组,像这样:
myArray=( "$@" )

如果你只想输入一些参数并将它们输入$ @值,请使用set:

$ set -- apple banana "kiwi fruit"
$ echo "$#"
3
$ echo "$@"
apple banana kiwi fruit

理解如何使用参数结构在POSIX sh中特别有用,它没有什么别的数组。

原文地址:https://www.jb51.cc/bash/392142.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐