大多数脚本语言都有here document, 因为它太有用了。

为什么有用?

你受得了 C “”字符串里不断的 \” \t  \r 等解引用吗,还有 多行字符串的拼接 “a”"b”。所以我讨厌 C的字符串处理,更讨厌用C来写 cgi。

here document 让一切都清静了。

 

作为历史悠久的bash也不例外。

cat << EOF

  ok , baby

EOF

我经常使用 here document 和 <()来写脚本

awk –f <(cat <<EOF

      {

         …… $abc ….

       }

EOF

)

我发现一个问题 <<EOF 这种here document 和 双引号字符串(“”)有相同的 解析效果,就是会对 $name, ${name}进行变量替换, 也会对$()进行命令替换。使用 \$, 可以解决这个问题。但这影响了here document 的可读性。有什么更好的方法吗?

 

<<'EOF'  救星来了

如果定界符被任何引号括住,shell 就不会对文本进行替换。

abc=ok

cat <<'EOF'

    $abc

EOF

输出: $abc

abc=ok

cat <<EOF

    $abc

EOF

输出: ok

相关文章:

  • 2022-12-23
  • 2021-06-29
  • 2022-12-23
  • 2021-06-29
  • 2021-11-03
  • 2022-02-10
  • 2022-01-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-08
  • 2021-06-15
  • 2022-12-23
  • 2021-12-04
相关资源
相似解决方案