Shell script to loop command line switches and arguments
我正在尝试编写一个bash脚本,该脚本将检查命令行switchess,并将下一个参数用于switches参数。
例子:
1 | sh myprogram.sh -s switchArg -p programArg start |
在我的脚本中,我试图用这种方式循环它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | if ["$#" -gt 2 ] then { i=1 for arg in"$@" do if ["$arg" =="-s" ] || ["$arg" =="-S" ] then { i=$((i++)) myArg=$i # This then gets used later in my script continue } elif ["$arg" =="-p" ] || ["$arg" =="-P" ] then { i=$((i++)) myArg2=$i # This then gets used later in my script continue } else { echo"illegal option: $arg" } done do stuff } fi |
无论开关的数量如何,我如何检测开关并使用下一个参数作为开关的参数?
您可以使用"shift"删除第一个参数。例如:
1 2 | arg1=$1; shift arg2=$1 |