繁体   English   中英

linux shell 脚本变量“未找到”

[英]linux shell script variable “not found”

只是在提示符处未输入任何输入时尝试退出循环,但我在测试 if 语句中的值时遇到问题?

代码:

SQL="?";
while true 
do

    if [ "$SQL" == "" ]
    then
        break
    else    
        read -p "SQL: "  SQL
        clear
        php -f sql.php "$SQL"
    fi
    
done

OUTPUT:

sql.sh: 5: [: ?: unexpected operator
SQL: 

尽管它看起来像是脚本语言的一部分,但[实际上是命令的名称,也称为test if语句运行该命令,并根据其结果执行操作。 (顺便说一句,你的 while 循环中的true也是如此 - 这是一个“什么都不做,成功”的命令。)

因此,您需要在命令及其参数之间以及if和命令之间留一个空格。 您还需要使用正确的 arguments; 比较两个字符串的标准拼写是=而不是==

if [ "$SQL" = "" ]

这相当于:

if test "$SQL" = ""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM