如何在zsh脚本中打印特殊的unicode字符

问题描述:

我想在两个文件没有不同时打印一个特殊的unicode字符。 我下面的代码产生一个错误说“-e:命令未找到”如何在zsh脚本中打印特殊的unicode字符

if [ -n "`diff file1 file2`" ] 
      then `echo -e "\u2713"` 
    fi 

编辑:我使用ZSH

摆脱周围的回声反引号的。

if [ -n "`diff file1 file2`" ] 
     then echo -e "\u2713" 
fi 

另外,如果你只是想知道,如果这两个文件是相同的,从diffcmp检查退出代码比如果他们有任何输出看到更高效。我建议cmp,因为它只是在不计算补丁的情况下检测差异。

if ! cmp -s file1 file2; then 
    echo -e "\u2713" 
fi 
+0

这产生输出“-e \ u2713”。我想要的是打印特殊字符(复选标记) – wginsberg

+1

你的shell是什么?你确定它是bash?所有这些都对我有用:'echo -e“\ u2713''/'echo -e'\ u2713'' /'echo $'\ u2713''。奇怪的是'-e'会被打印出来,这表明你正在使用一些不支持'-e'的过时的shell或echo命令。公平地说,'echo -e'不是完全可移植的,但是如果你使用bash。 –

+0

谢谢!我意识到我实际上有这个问题zsh – wginsberg