(小) bash 脚本中的错误

(小) bash 脚本中的错误

我一直在尝试在这个测试脚本中找出一个错误,但到目前为止还没有成功。我并不懒惰,我保证……我刚接触 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。这将打印所有以 开头的行+:您将获得脚本执行的跟踪。对实际脚本执行相同操作以找出问题所在。

相关内容