web-dev-qa-db-ja.com

ヒアドキュメントを1行で実行したり、逐語的にエコーしたりすることは可能ですか?

コマンドをテストしていることがよくあります(例:cat file | awk 'stuff')シェルで、動作に満足したら、コマンドをスクリプトファイルに追加します。

これが私が作成したコマンドだとしましょうcat file.txt | awk -F '|' '$3 == "\"0\""'

最初に何かをエスケープしたり、マウスを使用したりせずに、それをファイルにすばやくエコーするにはどうすればよいですか?

次のようなことをする方法はありますか

echo --verbatim the_command_with_lots_of_quotes_and_everything >> file.sh

または

cat <<'EOF'\n the_command \n EOF >> file.sh

6
Bloke

それほど速くはありませんが、zsh(そしてbashかもしれませんか?)にはfcと呼ばれるこの機能があります。それが何を意味するのかわかりませんが、入力すると、_$EDITOR_はです。

または、_history | tail -1 >> file_を実行することもできます。

1行でヒアドキュメントを実行するという点では、これは次のとおりです。

_~$ echo -e "cat << EOF\nhello\n12345\nEOF\n" | sh
hello
12345
_

私が考えることができる最も近いです。

4
apricot boy