Bash:使用'\ b'使字符串不相等?

时间:2014-05-24 22:48:28

标签: bash

我为什么不能恢复真实而感到有点困惑......

if [ "$(echo -e 'b\bg')" == "g" ]; then
    echo "true"
else
    echo "false"
fi

即使没有'(而不是\"),它也无效。

在控制台中运行它:

~$ echo -e 'b\bg'       
   g

那么,这句话中的g不等于g还是什么?

1 个答案:

答案 0 :(得分:4)

\b不会从字符串中删除前面的字符;当显示时,它会使光标向后移动一个位置,导致前面的字符被后面的字符覆盖。 b\bg仍然是一个3个字符的字符串,与任何单字符字符串都不匹配,即使它们在显示时看起来相同。 (就此而言,无法保证终端会将\b视为向后移动光标;它可能只是在其位置显示不可打印的字符字形,例如b?g。)