问题描述

  对多个变量及多行输出到文件,存在变量自动替换,当使用cat<<EOF不想对内容进行变量替换、命令替换、参数展开等

问题解决

  转义特殊字符如 $ `等

一、对 $·\ 进行转义

cat >> a.sh << EOF
echo \`hostname\`
echo $HOME
EOF

 二、在分界符EOF前添加反斜杠\,或者用单引号、双引号括起来

cat >> a.sh << \EOF
echo `hostname`
echo $HOME
EOF

cat >> a.sh << "EOF"
echo `hostname`
echo $HOME
EOF


cat >> a.sh << 'EOF'
echo `hostname`
echo $HOME
EOF

  对多个变量及多行输出到文件,存在变量自动替换,当使用cat<<EOF不想对内容进行变量替换、命令替换、参数展开等

问题解决

  转义特殊字符如 $ `等

一、对 $·\ 进行转义

cat >> a.sh << EOF
echo \`hostname\`
echo $HOME
EOF

 二、在分界符EOF前添加反斜杠\,或者用单引号、双引号括起来

cat >> a.sh << \EOF
echo `hostname`
echo $HOME
EOF

cat >> a.sh << "EOF"
echo `hostname`
echo $HOME
EOF


cat >> a.sh << 'EOF'
echo `hostname`
echo $HOME
EOF

相关文章:

  • 2021-12-10
  • 2021-12-31
  • 2021-08-09
  • 2022-12-23
  • 2021-09-13
  • 2022-01-15
猜你喜欢
  • 2021-07-31
  • 2022-12-23
  • 2022-01-11
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
相关资源
相似解决方案