0

下面是我用来比较 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

谢谢,

4

1 回答 1

0

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

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

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

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

于 2013-03-15T21:30:03.167 回答