我是 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"
你需要在和之间留一个空格]]