参考标准输出(前一个命令的输出,即)迅速在bash?(Reference stdout (i.e.

2019-07-30 08:30发布

有没有快速(例如,通过键盘快捷键等)来引用前一个命令的输出的输出,它写到标准输出的方法吗?

例如,如果我这样做:

which rails

和它返回/usr/local/bin/rails ,然后我想打开TextMate的这个文件,我可以重新输入类似这样的输出:

mate /usr/local/bin/rails

但有迅速引用输出,而不必重新输入它的方法吗?

注:我知道我可以做mate $(which rails) ,但我专门找参考标准输出。

Answer 1:

我用历史参考反引号:

$ which rails
/usr/local/bin/rails
$ mate `!!`

其实,我的编辑器(脚本启动gvim)化名为e ,所以看起来更短:

$ e `!!`

你可以随时绑定到一个热键(请参阅bash帮助页面bind命令和readline support )。

另外,如果你可以使用剪切缓冲区(在X应用程序鼠标选择),一个热键类似下面的可能是有用的:

$ e $(xclip -out)

该命令将启动编辑器如上面无论是在命令行中剪切缓冲区。 鉴于许多路径选择,只需双击,选择的路径可以非常快速地编辑。



Answer 2:

你总是可以运行在反引号中的命令:

mate `which rails`

我不得不说,虽然这感觉有点,呃,有风险的。 如果你的路径已经被篡改,使得它返回一个不同的版本比钢轨你真正需要什么样的? 如果这是什么返回什么? 所以,要小心关闭所有的错误情况,或避免它们在某些方面(比如,读取路径导轨从一个配置文件,并写入一个工具,建立该配置文件给你)。



文章来源: Reference stdout (i.e. output of previous command) quickly in bash?