字符串比较在Shell中不起作用[重复]

问题描述 投票:1回答:2

这个问题在这里已有答案:

我是shell编程语言的新手。为什么打印“找不到文件或目录”后,以下代码回显为false?

#!/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中运行代码,并没有真正改变任何东西。

linux shell condition
2个回答
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
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.