2

我有一个名为 foo 的 bash 脚本,其参数数量可变,第一个是必需的,即:

foo a1 b2 b3 b4 ...

我知道在 bash 中 $1 会让我得到参数 a1,但是有没有办法得到所有其余的参数?$@ 或 $* 似乎让我得到了包括 a1 在内的所有论点。

4

4 回答 4

6

切片$@数组。

echo "${@:2}"
于 2012-09-25T23:19:52.027 回答
2

您可以为此使用shift命令。这将删除 $1,您可以访问以 $1 开头的其余参数。

于 2012-09-25T23:17:55.533 回答
0
#!/bin/sh

echo $*
shift
echo $*

shift将移动所有参数,运行前面的示例将给出:

$ test_shift.sh a b c d e
a b c d e
b c d e
于 2012-09-25T23:19:21.150 回答
0

./foo.sh 1 2 3 4

#!/bin/bash
echo $1;
echo $2;
echo $3;
echo $4;

将输出:

1
2
3
4
于 2012-09-25T23:21:03.817 回答