【发布时间】:2014-02-17 10:23:34
【问题描述】:
我有 bash 脚本,我希望能够根据调用脚本时传递的选项跳过(即不执行)它的一些命令。
为了说明我想要完成的任务,我编写了带有 if 语句的脚本,它们基本上完成了相同的事情。
if [ "$1" != "skipA" ]
then
echo "A"
fi
if [ "$1" != "skipB" ]
then
echo "B"
fi
if [ "$1" != "skipC" ]
then
echo "C"
fi
if [ "$1" != "skipD" ]
then
echo "D"
fi
当调用脚本时没有传递任何参数时,所有四个echo 语句都会被执行。如果我想跳过其中一个回显语句,我使用skipLETTER 作为第一个参数:
./script.sh skipA
除了A 之外的所有字母都会被打印出来。它可以工作,但它确实有很多限制 - 一方面,我不能使用相同的参数跳过许多部分 ($1)。我想用选项实现同样的目标,所以我可以输入如下内容:
./script -skipA -skipD
因此只打印B 和C 字母。
我知道我可以使用getopt 或getopts 来实现这一点,但我找不到任何简单的使用示例来实现我所描述的。
【问题讨论】:
-
也许您可以在 if 语句中输入
continue以跳过第一个参数..good?
标签: bash if-statement options getopt getopts