スクリプトに入るための変数をエスケープする

スクリプトに入るための変数をエスケープする

Bash では、次のコンテンツをファイルに取り込もうとしています。

for pid in $(ps -lef | grep ssh | grep 2048 | awk '{print $4}'); do kill -9 $pid; done

たとえば、FileA にどうやって入れようとしても、変数が実際の値に置き換えられてしまいます。EOF と echo を試しましたが、うまくいきませんでした。

私の最終目標は、ワンライナーのコンテンツを含む FileA を作成することです。

答え1

「EOFを経験した」と言うとき、あなたはここに文書、しかし、ヒアドキュメントを引用してみましたか?言葉?

cat <<'EOF' >FileA
for pid in $(ps -lef | grep ssh | grep 2048 | awk '{print $4}'); do kill -9 $pid; done
EOF

word が引用符で囲まれていない場合、ヒアドキュメントのすべての行はパラメータ展開、コマンド置換、および算術展開の対象となり、文字シーケンス \newline は無視され、文字 '\'、'$'、および '`' を引用符で囲むには '\' を使用する必要があります。

関連情報