46
check_prog hostname.com /bin/check_awesome -c 10 -w 13
check_remote -H $HOSTNAME -C "$ARGS"
#To be expanded as
check_remote -H hostname.com -C "/bin/check_awesome -c 10 -w 13"
私は上記の理にかなって、私はおよそためにこれを使用すると、引数が変更されます願ってい20+コマンド。プログラムをラップする奇妙な方法ですが、これを回避するここで使用しているいくつかのシステムでいくつかの問題があります(70年代のコードが好きです)
上記はPerlまたはPythonで書かれていますが、Bashはあなたはshift
シフトを使用することができ、好ましい方法
恐ろしいです! 'echo $ 1 shift echo $ * 'は、これを探している人たちのためにshiftを使う方法の例です。 './script.sh cmd1 cmd2 cmd3 cmd4'のように実行すると$ 1に設定されますcmd1 cmd2 cmd3 cmd4私が望むように – user554005
そして、 '$#'はすでに0になっていない限り、1だけ減らされます。また、 'shift'に複数の場所でシフトする数値引数を与えることもできます。 –
@ user554005:引用符で囲まれていない形式と '$ *'形式の引数が引数を "平坦化"するので、 'echo $ *'や 'echo" $ * "'の代わりに 'echo" $ @ "'通常は欲しくない。 –