use*_*458 8 bash shell awk ksh
当我执行以下命令时,在bash shell上我得到错误但是在Korn shell上它运行得非常好.唯一的区别是在awk结束时缺少单引号,在}之后.你能帮我理解为什么吗?
echo `echo "a b c d" | awk '{ print $1 }`
Run Code Online (Sandbox Code Playgroud)
在 Korn shell 中,反引号和引号都可以保持不匹配,分词器将尝试猜测两者的结束位置并相应地匹配它们。
例子:
/home/ufierro # echo "`echo ah"
+ echo ah
+ echo ah
ah
/home/ufierro # echo `echo 'hello world`
+ echo 'hello world'
+ echo hello world
hello world
Run Code Online (Sandbox Code Playgroud)
请注意这两个示例如何显示上述行为的不同情况。第一个示例显示了在解析期间如何完成双引号内的单个反引号,第二个示例显示了如何完成反引号内的单引号。