別のスクリプトを書くスクリプトを書くコードがあります。
cat > step1.sh <<-EOF
*other commands*
cat > step2.sh <<-EOF4
if [ -f PM.log ]; then
awk '/testphrase/{ f=1;r=""; next }f && /testphrase2/{f=0}f{ r=(r=="")? $0: r RS $0 }END{ print r }' PM.log > tmp1.log
checkfree=($(cat tmp1.log))
wait
sed -i '$ d' tmp${mold}.log
wait
fi
EOF4
qsub step2.sh
EOF
qsub step1.sh
5行目と6行目($(cat tmp1.log))で「$ 0」を使用してパラメータ拡張を防止したいと思います。 $の前に「\」を使用すると、パラメータ拡張が一度防止されることがわかります。
\$0
ところで、このスクリプトは別のスクリプトで作成したものなので、二重、三重拡張を防止するために各スクリプトを作成しながらどうすればよいのか分かりません。
また、ファイルの終わり表示を編集できることもわかっていますが、ファイルの他のパラメータ(8行のMoldなど)を拡張したいので、そうすることもできません。
これらの特定の用語が毎回拡張されるのをどのように防ぐことができますか?
ベストアンサー1
行末マークを引用すると、これが行われます。最初の行に以下を引用してください。
cat > run1.sh <<-"EOF"