如何从bash交互式shell中的上一个命令轻松获取倒数第二个字/参数?我经常在后台运行的命令,我想获得那是&
之前指定的文件,例如,如何获得前一个bash命令的倒数第二个参数? (在交互式bash shell中)
% echo foo > /tmp/foo &
% cat !$
% &
在上面的例子中,!$
给人的最后一个字,&
。但我想第二个到的,最后一个参数,/tmp/foo
需要注意的是,可以使用字标志与像!-1:3
一个范围,但这是不切实际的命令有大量的话,其中的它不是很快很明显有多少的话有,例如,
% (set -x; date; pwd; git status; git diff; git log | tail -30; date; args=--verbose time make test; date) >& /tmp/log/make.test.20150122-Thu-0834 &
% echo !-1:30
/tmp/log/make.test.20150122-Thu-0834
上述作品中的例子,但你要算,知道你想要的字是30字,这是耗时且容易出错。
是否有简单的方法来获取倒数第二个字? (请注意,这个问题是指在交互式shell中的前一个命令的参数,而不是从命令行传递给shell脚本的参数,因为这里指的是一些答案和注释。)
相关:[如何从bash中的上一个命令获取特定参数?](http://superuser.com/q/210846/71161) – kojiro 2015-01-21 00:58:11
'$ _'为您提供最后一个命令的最后一个参数,但这意味着'echo foo'的'foo',因为它不会计算非参数,如I/O重定向或背景。 – 2015-01-22 00:59:34
[处理除第一个参数以外的所有参数]可能的重复(http://stackoverflow.com/questions/9057387/process-all-arguments-except-the-first-one) – 2016-08-23 18:43:18