【发布时间】:2015-04-24 08:50:24
【问题描述】:
我有一个接受命令行参数的 Bash 脚本。该脚本定义了几个字符串数组。该参数确定我要打印的数组。由于有许多不同的可能数组可供选择,我希望能够在命令行上准确指定要打印的数组。
例如,假设我定义了这些数组:
#/bin/bash
myarray1=(abc 123)
myarray2=(def 456)
myarray3=(ghi 789)
myarray4=(jkl 012)
myarray5=(mno 345)
myarray6=(pqr 678)
myarray7=(stu 901)
我想从命令行中选择是否要打印所有数组或这些数组的各种组合,例如myarray1、myarray3 和myarray4。但在另一次运行中,我只想打印myarray5 和myarray7。
我希望能够像这样运行脚本:
np ~/usr-bin > bash myscript.bash myarray1 myarray3 myarray4
所以输出是这样的:
abc 123
ghi 789
jkl 012
或者像这样:
np ~/usr-bin > bash myscript.bash myarray5 myarray7
所以输出是这样的:
mno 345
stu 901
我希望 Bash 接受这些参数并识别它们是数组/变量名称,然后像我这样做一样打印它们:echo $1
我以前几乎没有编写过任何 Bash 脚本,而且我尝试使用的方法似乎不起作用。这是可能的吗,还是有比我尝试的方法更好的方法来实现它?
【问题讨论】:
标签: arrays bash command-line arguments