1. 程式人生 > >EOF多行寫入檔案防止變數替換

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