Bash,参数列表段

时间:2010-03-05 23:55:38

标签: bash arrays

如果你在python中有一个列表,并且你想要从2到n的元素可以做一些很好的事情,比如

list[2:]

我想在Bash中使用与argv类似的东西。我想将$ 2中的所有元素传递给argc到命令。我目前有

command $2 $3 $4 $5 $6 $7 $8 $9

但这不是优雅的。会是“适当”的方式吗?

3 个答案:

答案 0 :(得分:67)

你也可以做“切片”,$@获取bash中的所有参数。

echo "${@:2}"

从第二个论点开始

例如

$ cat shell.sh
#!/bin/bash
echo "${@:2}"

$ ./shell.sh 1 2 3 4
2 3 4

答案 1 :(得分:4)

$1存储在某处,然后shift并使用$@

答案 2 :(得分:4)

script1.sh:

#!/bin/bash
echo $@

script2.sh:

#!/bin/bash
shift
echo $@

$ sh script1.sh 1 2 3 4
1 2 3 4 
$ sh script2.sh 1 2 3 4 
2 3 4