如何從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