在编辑器中重定向bash脚本输出而不保存文件
我有一个输出几行的脚本,我想在我的系统(nano、vim 等)上的编辑器中打开它以准备编辑。但是,我不想将它保存到临时文件或变量中,而是直接保存在编辑器中(我想我需要以某种方式将其保存到编辑器的缓冲区中)。
我天真地尝试过这样的事情(我以为我可以以某种方式将输出通过管道传输到 nano 中):
echo "test" | nano # throws Too many errors from stdin
或者,我想像打开文件一样打开输出:
nano $(echo "test")
它只打开编辑器,但它是空的。这甚至可能还是临时文件是绝对必要的?
回答
你可以做
echo 'test' | nano -
该-选项告诉 nano 从 stdin 而不是文件中读取。不过,这是一个特定于编辑器的解决方案。更强大的解决方案需要临时文件,您可以使用这些文件mktemp。
- `mktemp` is the most universal solution, so this is what all other tools invoking editors use. Examples include `crontab -e`, `git commit`, and `visudo`