"cat"コマンド:可能なすべての違反を自動的に回避するには?

コンテンツをコピーした場合

httpd.conf

次にcatコマンドに貼り付けます。たとえば、次のようになります。

#!/bin/bash
cat > /test << EOF
pasted here..
EOF

次のエラーが発生します。

-bash: command substitution: line 1: unexpected EOF while looking for matching `''
-bash: command substitution: line 4: syntax error: unexpected end of file

おそらく、解決策はドル記号や引用符などを避けることです。

しかし、ファイルが大きすぎるため、ドル記号を自動的にエスケープできますか?

他のプログラムを介してエスケープしてからcatコマンドに提供する唯一のオプションはありますか?

ベストアンサー1

「EOF」文字列の周囲に引用符を使用します。

cat > /test <<'EOF'
stuff $(pwd)
EOF

出力

stuff $(pwd)

文字通り。

よりバッシュマニュアルこの記事に。終了文字列に引用符が含まれると、本文の拡張と置換が防止されます。

おすすめ記事