字符串比较对于相同的字符串返回false

时间:2013-03-15 21:15:18

标签: bash shell scripting

下面是我用于将df输出与字符串进行比较的代码。谁能告诉我它为什么总是返回假?

bash-3.00$ a=$(df -n dir1)
bash-3.00$ b="/opt               : ufs"
bash-3.00$ echo "$a"
/opt               : ufs
bash-3.00$ echo "$b"
/opt               : ufs
bash-3.00$ [[ "$a" = "$b" ]]
bash-3.00$ echo $?
1
bash-3.00$
bash-3.00$ [[ "$a" == "$b" ]]
bash-3.00$ echo $?
1

谢谢,

1 个答案:

答案 0 :(得分:0)

以下类似的顺序对我有用:

x=$(df -n /dev | grep dev)
y="devfs             226  226         0   100%    /dev"
[[ $x == $y ]]
echo $?
# -> 0

与大多数调试情况一样,要做的事情是分而治之。做最简单的事情,实际上是有效的,然后逐渐使它看起来像你的问题,或让你的问题看起来像它

在这种情况下,您可以捕获文件中的输出(或执行@chepner建议并通过od管道)并详细检查它,查找例如制表符;或者,您可以尝试输出比df更简单的命令。

相关问题