如果我将任意数量的参数传递给内部调用Java程序的shell脚本,如何将第二个参数向前传递给除第一个之外的Java程序?将第二个参数从shell脚本传递给Java
./my_script.sh ABCD ....
#my_script.sh
...
java MyApp b c d ...
如果我将任意数量的参数传递给内部调用Java程序的shell脚本,如何将第二个参数向前传递给除第一个之外的Java程序?将第二个参数从shell脚本传递给Java
./my_script.sh ABCD ....
#my_script.sh
...
java MyApp b c d ...
首先使用shift
“消费” 的第一个参数,然后通过"[email protected]"
,即剩余的参数列表:
#my_script.sh
...
shift
java MyApp "[email protected]"
你可以在不使用“shift”的情况下向前传递第二个参数。
set -- 1 2 3 4 5
echo "${@:0}"
echo "${@:1}"
echo "${@:2}" # here
在'sh'中不起作用,只有'bash'。这称为子字符串扩展,对'@'有特殊的作用。通常它会对字符进行计数,但对于@来说,它会计算参数。 – lesmana 2010-10-22 13:46:57
相关:http://stackoverflow.com/questions/28057815/how-to-get-second-to-last-argument-from-previous-bash-command – 2016-08-23 18:44:25