如果我將任意數量的參數傳遞給內部調用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