如果我将任意数量的参数传递给内部调用Java程序的shell脚本,那么如何将第二个参数传递给Java程序,除了第一个?
./ my_script.sh a b c d ....
#my_script.sh
...
java MyApp b c d ...
答案 0 :(得分:73)
首先使用shift
来“消耗”第一个参数,然后传递"$@"
,即剩下的参数列表:
#my_script.sh
...
shift
java MyApp "$@"
答案 1 :(得分:38)
您可以在不使用“shift”的情况下向前传递第二个参数。
set -- 1 2 3 4 5
echo "${@:0}"
echo "${@:1}"
echo "${@:2}" # here