![$ varを含むテキストをbashファイルに書き込むには? [コピー]](https://linux33.com/image/93147/%24%20var%E3%82%92%E5%90%AB%E3%82%80%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92bash%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80%E3%81%AB%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
case $1 in
bashファイルの作成に問題があります。私は前に試しました
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