run $(python -c "print('A'*256)")
bashスクリプトを使用してファイルにコマンドを書くのに問題があります(コマンドの出力ではない+コマンドを実行したくありません)。ファイルをここに含めたいです。
変数に追加し、エコーを介してファイルに渡そうとしましたが、うまくいきませんでした。
私も似ています。echo "run $(python -c "print('A'*256)")" > file.txt
どちらも機能しませんでした。実際、いくつかのエラーが発生し、問題が複数の二重引用符のためだと思って一重引用符に変更しました。これはファイル実行時にこの出力を提供します。
だから基本的にそれを完全に無視しました$(python -c "print('A'*256)")
。
この問題を解決する方法を知っていますか?
ベストアンサー1
ランダムな文字列を次にリダイレクトする最も信頼性の高い方法です。ここでドキュメントを使用してください。:
cat > file.txt <<'EOT'
run $(python -c "print('A'*256)")
EOT
file.txt
前のテキストが標準入力として使用されるまで、1行をEOT
そのまま入れてから、リダイレクトのcat
ためcat
にもう一度吐き出します。シェルはEOT
行の先頭に達するまで文書を読み続けるため、必要に応じて一度に複数の行を配置できます(EOT
文字列でこれが発生した場合は別のものを使用してください。区切り文字は任意です)。
区切り文字が上部に引用されているため、ここでは文書1の本文への拡張は行われず、すべての文字がそのまま渡されます。Here-documents の動作は POSIX で指定されます。そして、すべてのシェルで動作します。
1場合によっては、いくつかの拡張を実行するいくつかの以前のバージョンのBashにバグがありました。しかし、ここでは発生しません。