是否可以在一行中完成此处文档或逐字回显?

是否可以在一行中完成此处文档或逐字回显?

我经常发现自己在 shell 中测试命令(例如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

答案1

不是那么快,但是 zsh (也许还有 bash?)有一个名为 的功能fc,我不确定它代表什么,但如果你输入它,它似乎会打开命令,无论你$EDITOR是什么。

或者也许你可以这样做history | tail -1 >> file

就在一行中执行定界符而言,如下:

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

是我能想到的最接近的。

相关内容