在我的bash脚本中,我想解析零个,一个或两个参数(脚本可以识别它们),然后将其余参数转发给脚本中调用的命令。我怎么能这样做?
答案 0 :(得分:196)
答案 1 :(得分:26)
bash使用 shift 命令:
e.g。 shifttest.sh:
#!/bin/bash
echo $1
shift
echo $1 $2
shifttest.sh 1 2 3产生
1
2 3
答案 2 :(得分:15)
Bash支持子集化参数(参见Subsets and substrings),因此您可以选择要处理/传递的参数。
打开新文件并进行编辑:vim -webkit-appearance: none;
-moz-appearance: none;
appearance: none;
:
r.sh
运行它:
echo "params only 2 : ${@:2:1}"
echo "params 2 and 3 : ${@:2:2}"
echo "params all from 2: ${@:2:99}"
结果是:
$ chmod u+x r.sh
$ ./r.sh 1 2 3 4 5 6 7 8 9 10