字符串比较在Shell中不起作用

时间:2017-12-17 03:17:10

标签: linux shell conditional-statements

我对shell编程语言很陌生。为什么以下代码在打印"文件或目录未找到后回显为假。"?

#!/bin/sh -xu
ARG_PATH="/srv/path/to/Something"

if ["$ARG_PATH" = "/srv/path/to/Something"] 
then 
   echo "true!" 
else
   echo "false!"
fi

我试过用sh和bash运行代码,并没有真正改变任何东西。

2 个答案:

答案 0 :(得分:2)

检查路径是否正确?您的语法似乎没问题,除了Bash是空间敏感的,在space之后和[之前提供]

ARG_PATH="/srv/path/to/Something"

if [ $ARG_PATH = "/srv/path/to/Something" ]
then
        echo $? #display 0 if both r same
fi

答案 1 :(得分:1)

在括号周围放置空格,如果不这样,shell会认为["$ARG_PATH"[时的命令。

正确的测试是if [ "$ARG_PATH" = "/srv/path/to/Something" ]

相关问题