$ varを含むテキストをbashファイルに書き込むには? [コピー]

$ varを含むテキストをbashファイルに書き込むには? [コピー]

case $1 inbashファイルの作成に問題があります。私は前に試しました

cat <<EOT > /etc/init.d/startup.sh
#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

case "$1" in
    start)
        bash /root/install.sh >> /root/installation_log.txt 2>&1
        ;;
    stop|restart|reload)
        ;;
esac
EOT

startup.shしかし、問題はすべての内容をbut$1行に書き込むということです。

case "$1" in  

~になる

case "" in 

手術後。
何をすべきか?

答え1

何らかの方法で演算子EOFに渡された終端子を参照します。<<

cat << 'EOT' > file
$var
EOT

または

cat << \EOT
cat << EO\T
cat << "E"'O'T
cat << ""EOT

これは文書化された標準的な方法この文書内でどのような拡張も行われないようにします。

答え2

可変インフレをEOT防ぐために、最初のものを変更してください。'EOT'

例えば

cat <<'EOT' > /etc/init.d/startup.sh

関連情報