私はこのような簡単なスクリプトを持っています:
#!/bin/bash
BOO=bla-bla-bla
cat > ./Makefile <<'EOF'
Hello
INCLUDES := -I/data/opt/include/ -Ideps/ -I$BOO/include
EOF
それでもファイルに出力します:
Hello
INCLUDES := -I/data/opt/include/ -Ideps/ -I$BOO/include
cat
に、その文字列内の名前ではなく、変数値を使用させる方法
ヒアドキュメントの制限文字列EOF
を一重引用符で囲み、パラメータの置換を抑制しないようにします。詳細 こちら 。
特に " 例19-7。パラメータ置換がオフになっている "とに注意してください" 例19-8。別のスクリプトを生成するスクリプト "。