Linux cat 多行寫入文件防止變量替換
問題描述
對多個變量及多行輸出到文件,存在變量自動替換,當使用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