如何将命令行参数转换为bash脚本数组?在Bash中将命令行参数转换为数组
我想借此:
./something.sh arg1 arg2 arg3
并将其转换为
myArray=(arg1 arg2 arg3)
,这样我可以用myArray的为脚本中的进一步使用。
此之前的SO后接近,但不进入如何创建一个数组:How do I parse command line arguments in Bash?
我需要的参数转换为常规bash脚本阵列;我意识到我可以使用其他语言(例如Python),但需要在bash中执行此操作。我想我正在寻找一个“追加”功能或类似的东西?
更新:我也想问如何检查零个参数,并指定一个默认的数组值,并且由于下面的答案,能得到这个工作:
if [ "$#" -eq 0 ]; then
myArray=(defaultarg1 defaultarg2)
else
myArray=("[email protected]")
fi
谢谢!很棒!正要问如何检查零参数并分配一个默认数组值,而$#完全适用于此! – Suman
@kojiro set的含义是什么 - ,谢谢 – mailzyok
'set'允许你为范围设置位置参数。它还可以让你设置shell选项。你可以执行'set foo',这意味着'$ 1'扩展为'foo',但是如果你的参数以'set'开头,将假定你的意思是设置一个shell选项。双短划线确保将以下所有参数解释为要设置的位置参数。 – kojiro