Bash 脚本失败,提示“条件表达式中的语法错误”

Bash 脚本失败,提示“条件表达式中的语法错误”

我是 Bash 脚本的新手,我只想做一件简单的小事,但我在网上读到的一切似乎对我来说都不起作用!

所以我这里有这个脚本:

  #!/bin/bash
  if [[ $1 = "32"]]
  then
      mv config.h config64.h
      mv config32.h config.h
      mv Makefile Makefile64
      mv Makefile32 Makefile
      echo "READY FOR 32 BITS!"
  elif [[ $2 = "64" ]]
  then
      mv config.h config32.h
      mv config64.h config.h
      mv Makefile Makefile32
      mv Makefile64 Makefile
      echo "READY FOR 64 BITS!"
  fi

我收到错误:

./switch-bits.sh: line 3: syntax error in conditional expression
./switch-bits.sh: line 4: syntax error near `then'
./switch-bits.sh: line 4: `then'

所以我的双手在这里举在空中...出了什么问题?

答案1

为了详细说明我的评论,我建议按如下方式更改您的脚本:

#!/bin/bash
if [[ $1 = "32" ]]
then
  rm config.h
  ln -s config32.h config.h
  rm Makefile
  ln -s Makefile32 Makefile
  echo "READY FOR 32 BITS!"
elif [[ $1 = "64" ]]
then
  rm config.h
  ln -s config64.h config.h
  rm Makefile
  ln -s Makefile64 Makefile
  echo "READY FOR 64 BITS!"
fi

还有一个更短(更聪明)的版本:

#!/bin/bash
rm config.h
ln -s config$1.h config.h
rm Makefile
ln -s Makefile$1 Makefile
echo "READY FOR $1 BITS!"

注意 - 如果您使用的是较短的版本,最好包含一些错误检查 - 即确保输入是“32”或“64”,而不是其他值。我将把这留给您...

答案2

"32"你需要在和之间留一个空格]]

相关内容