我有 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
则执行所有四个语句。如果我想跳过其中一个 echo 语句,我将skipLETTER
其用作第一个参数:
./script.sh skipA
并且除此之外的所有字母都A
被打印出来。它可以工作,但它确实有很多限制 - 一方面,我不能使用相同的参数 ( $1
) 跳过许多部分。我想用选项实现同样的目标,所以我可以输入如下内容:
./script -skipA -skipD
结果只打印B
和C
字母。
我知道我可以使用getopt
或getopts
实现这一点,但我找不到任何简单的使用示例来实现我所描述的。