我有两个完全相同的Ubuntu 12.04 LTS系统。今天,一个shell脚本在其中一个Ubuntu系统上失败了,即使这个脚本多年没有修改过,在几小时前还能正常工作。我已经能够缩小错误范围:
string='question mark: ?'
echo $string
question mark: n t
string='question mark: ?'
echo "$string"
question mark: ?
在脚本失败的系统上,当省略引号时,'?'会被替换为'n t'。在另一个相同的系统上进行相同的测试,结果如下:
string='question mark: ?'
echo $string
question mark: ?
string='question mark: ?'
echo "$string"
question mark: ?
在这个系统上,无论是否省略引号,问号都能正确打印。
这个shell脚本多年来一直没有被修改过,系统也没有进行任何升级或修改。几小时前,这个shell脚本还能正常工作,但突然间出现了'?'被转换成'n t'的问题,原因不明。
我因为这个问题而烦恼不已,所以真的希望有人能想出这是为什么。
谢谢。