在我的bash脚本,我想解析零,一个或两个参数(该脚本可以识别它们),那么剩下的参数转发到在脚本中调用的命令。 我怎样才能做到这一点?
Answer 1:
使用shift
内置命令“吃”的论点。 然后调用子进程,并通过它的"$@"
的说法包括所有剩余的参数。 注意引号,他们应该保持,因为它们所造成的参数列表的扩展被正确引用。
Answer 2:
bash中使用换档命令:
如shifttest.sh:
#!/bin/bash
echo $1
shift
echo $1 $2
shifttest.sh 1 2 3产生
1
2 3
Answer 3:
巴什支持子集参数(见群和子 ),所以你可以选择哪些参数过程/通过这样的。
打开新文件并编辑:VIM
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
其结果是:
params only 2 : 2 params 2 and 3 : 2 3 params all from 2: 2 3 4 5 6 7 8 9 10
文章来源: How do I forward parameters to other command in bash script?