关于bash:从shell脚本向前传递第二个参数到Java

Passing second argument onwards from a shell script to Java

本问题已经有最佳答案,请猛点这里访问。

如果我将任意数量的参数传递给在内部调用Java程序的shell脚本,那么除了第一个参数之外,如何将第二个参数传递给Java程序?

./my_script.sh a b c d ....

1
2
3
#my_script.sh
...
java MyApp b c d ...


首先使用shift来"消耗"第一个参数,然后传递"$@",即剩下的参数列表:

1
2
3
4
#my_script.sh
...
shift
java MyApp"$@"


您可以在不使用"shift"的情况下向前传递第二个参数。

1
2
3
4
5
set -- 1 2 3 4 5

echo"${@:0}"
echo"${@:1}"
echo"${@:2}"   # here