小编Jay*_*Jay的帖子

将参数传递给具有开关的 shell 脚本

我不确定这是否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不会打印出传递的第二个参数。

linux shell

0
推荐指数
1
解决办法
1961
查看次数

标签 统计

linux ×1

shell ×1