我想设计一个 shell 脚本作为几个脚本的包装器。我想指定参数myshell.sh
using getopts
并将其余参数以相同的顺序传递给指定的脚本。
If myshell.sh
执行方式如下:
myshell.sh -h hostname -s test.sh -d waittime param1 param2 param3
myshell.sh param1 param2 -h hostname param3 -d waittime -s test.sh
myshell.sh param1 -h hostname -d waittime -s test.sh param2 param3
以上所有内容都应该能够调用
test.sh param1 param2 param3
是否可以使用选项参数 myshell.sh
并将剩余参数发布到底层脚本?
我想做类似OP的事情,我找到了我需要的相关信息here https://web.archive.org/web/20130927000512/http://www.devhands.com/2010/01/handling-positional-and-non-positional-command-line-arguments-from-a-shell-script/ and here https://web.archive.org/web/20170203212120/http://www.ibm.com/developerworks/opensource/library/l-bash-parameters/index.html
本质上,如果你想做类似的事情:
script.sh [options] ARG1 ARG2
然后得到这样的选择:
while getopts "h:u:p:d:" flag; do
case "$flag" in
h) HOSTNAME=$OPTARG;;
u) USERNAME=$OPTARG;;
p) PASSWORD=$OPTARG;;
d) DATABASE=$OPTARG;;
esac
done
然后你可以得到这样的位置参数:
ARG1=${@:$OPTIND:1}
ARG2=${@:$OPTIND+1:1}
更多信息和详细信息可通过上面的链接获得。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)