Zsh 单引号中的反斜杠

Zsh 单引号中的反斜杠,zsh,backslash,quote,Zsh,Backslash,Quote,我正在使用zsh。我认为“\t”和“\t”的行为应该有所不同 但当我测试以下内容时: $ a="\t" $ b='\t' $ [[ $a == $b ]] && echo "equal" equal 无论是单引号还是双引号,反斜杠的行为似乎都是一样的 那么如何保留反斜杠的文字值呢?\t仅在ANSI-C引用中是特殊的,即$'\t'。至于最后一个问题,您的解释是错误的。反斜杠在你们两个版本中都是字面意思。我明白了。因此,只有在执行echo时才解释\t,而如果使用$'\t',则在

我正在使用zsh。我认为“\t”和“\t”的行为应该有所不同

但当我测试以下内容时:

$ a="\t"

$ b='\t'

$ [[ $a == $b ]] && echo "equal"
equal
无论是单引号还是双引号,反斜杠的行为似乎都是一样的


那么如何保留反斜杠的文字值呢?

\t
仅在ANSI-C引用中是特殊的,即
$'\t'
。至于最后一个问题,您的解释是错误的。反斜杠在你们两个版本中都是字面意思。我明白了。因此,只有在执行echo时才解释\t,而如果使用$'\t',则在输入echo之前已经对其进行了解释?
$'\t'
基本上等同于一个文本制表符,只是它被引用了,所以它不会被视为分词器,也不会被分词剥离。