所以我有一个名为try.sh的简单 shell 脚本:
#! /bin/ksh
echo "'" | awk '
/'\''/ {
print "'\''ello, world"
}
'
它运行良好:
$ ./try.sh
'ello, world
但是ksh -n对此并不完全满意:
$ ksh -n ./try.sh
./try.sh: warning: line 3: ' quote may be missing
./try.sh: warning: line 5: ' quote may be missing
我可以使用技巧(awk 变量、awk 十六进制序列等)来解决这个问题,但肯定有一些本机优雅的方式来安抚 ksh 语法检查器(如果没有别的,对于嵌入式语言没有规定的情况)变通方法)。我忘记了什么?
[更新:显然语法检查器正在标记该行,因为带有嵌入换行符的带引号的字符串后面跟着另一个带引号的字符串,中间没有空格。David Korn 说他将审查下一个版本的 ksh 的检查。有关详细信息,请参阅ast-users 邮件列表存档。]