Shell 脚本有错误吗?

Shell 脚本有错误吗?

我正在尝试创建一个交互式 bash shell 脚本,以便更轻松地安装和配置 postfix 邮件服务器,但仍然让他们输入命令,然后让 shell 运行它们,但我一直收到此错误,我不知道为什么。

这两行给了我错误“参数太多”

if test $VAR1 = sudo apt-get install postfix

until test $VAR1 = sudo apt-get install postfix

谢谢。

答案1

您需要引用参数以test防止它们在空格处“中断”,即如果

$ var1="sudo apt-get install postfix"

然后

$ if test $var1 = sudo apt-get install postfix; then echo "Match"; fi
bash: test: too many arguments

$ if test "$var1" = "sudo apt-get install postfix"; then echo "Match"; fi
Match

[ ... ]如果你使用测试构造,同样适用

if [ "$var1" = "sudo apt-get install postfix" ]; then echo "Match"; fi

顺便说一句,建议不要使用全大写的变量名 - 全大写通常保留用于系统变量。

相关内容