示例:
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是首选的方法
答案 0 :(得分:79)
您可以使用shift
shift是一个内置的shell,它根据位置参数进行操作。每次调用shift时,它都会将所有位置参数“向下移动”一个。 $ 2变为$ 1,$ 3变为$ 2,$ 4变为$ 3,依此类推
示例:
$ function foo() { echo $@; shift; echo $@; }
$ foo 1 2 3
1 2 3
2 3
答案 1 :(得分:2)
作为一名程序员,我强烈建议不要使用shift
,因为修改状态的操作会影响脚本的大部分内容,并使之难以理解,修改和调试:sweat_smile:。您可以改为使用以下内容:
#!/usr/bin/env bash
all_args=("$@")
first_arg=$1
second_args=$2
rest_args=("${all_args[@]:2}")
echo "${rest_args[@]}"
答案 2 :(得分:1)