我不确定这是否switch是正确的术语,因为我是新手Unix。
我有一个 shell 脚本,需要我所说的 aswitch才能正常运行,但我也想传递参数:
./scriptname -cm
Run Code Online (Sandbox Code Playgroud)
如果我运行./scriptname它就会失败。但我也想传递各种论点:
./scriptname -cm arg1 arg2 arg3 arg4
Run Code Online (Sandbox Code Playgroud)
这似乎由于-cm. 通常,当我./scriptname arg1 arg2 arg3这样做时,它会正常工作,但一旦添加开关,它就会失败。建议?
编辑1:
添加一些更相关的代码:
./scriptname -cm
Run Code Online (Sandbox Code Playgroud)
将会通知
脚本名
gencmlicense()
{
echo $2
do stuff
}
gentermlicense()
{
do stuff
}
if [ "$1" = "-cm" ] ; then
gencmlicense
elif [ "$1" = "-term" ] ; then
gentermlicense
fi
Run Code Online (Sandbox Code Playgroud)
如果我添加一个参数,则echo $2不会打印出传递的第二个参数。