我一直在尝试在这个测试脚本中找出一个错误,但到目前为止还没有成功。我并不懒惰,我保证……我刚接触 Bash,所以很难发现语法错误。如果有人能帮助我,我将不胜感激。
这是代码。我使用选项 -disableVenusBld 调用该脚本,但它仍然打印“正在开始构建”,这不应该发生吗?
while [ $# -ne 0 ]
do
arg="$1"
case "$arg" in
-disableVenusBld)
disableVenusBld=true
;;
-disableCopperBld)
disableCopperBld=true
;;
-disableTest)
disableTest=true
;;
-disableUpdate)
disableUpdate=true
;;
*)
nothing="true"
;;
esac
shift
done
if [ "$disableVenusBld" != true ]; then
echo "Starting build"
fi
答案1
我看不出您的脚本有什么问题,并且运行它时它会执行您期望的操作:
$ bash -x 186724.sh
+ '[' 0 -ne 0 ']'
+ '[' '' '!=' true ']'
+ echo 'Starting build'
Starting build
$ bash -x 186724.sh -disableVenusBld
+ '[' 1 -ne 0 ']'
+ arg=-disableVenusBld
+ case "$arg" in
+ disableVenusBld=true
+ shift
+ '[' 0 -ne 0 ']'
+ '[' true '!=' true ']'
请注意,我使用 运行了脚本bash -x
。这将打印所有以 开头的行+
:您将获得脚本执行的跟踪。对实际脚本执行相同操作以找出问题所在。