2012-08-13 75 views
0

在bash中可以用!-1來執行1命令,該命令由從0開始的結尾列舉的歷史記錄執行。但是,如何通過內置的方式來顯示歷史,從而提到枚舉而不是通常的?當然可以寫一個簡單的腳本,但我覺得應該有某種選擇。從結尾列舉的Bash歷史

的另一個問題是,如果有一種方法以某種方式切換歷史擴展,使-標誌將unnessasary。說出交換!1!-1的含義。

+0

有'歷史|在你的問題的第一部分,tail -r'可以得到你想要的東西嗎? – sje397 2012-08-13 12:01:59

+0

@ sje397'tail'不識別'-r'選項。我在Cygwin之下。 – nshy 2012-08-13 12:10:27

回答

1

顯示負指數很容易實現。只需記下歷史的長度(或從history 1中獲取),並從所有其他歷史項目的索引中減去它。

neghistory() { 
    local i n s 
    read n s < <(history 1) 
    history "[email protected]" | while read i s; do 
     printf '%5d %s\n' $((i-n-1)) "$s" 
    done 
} 

我沒有看到任何內置的方式來影響歷史的輸出這樣也無法改變歷史膨脹指數是如何工作的。

+0

那麼,腳本的確很簡單。謝謝。我會等待看第二個問題是否有積極的答案。 – nshy 2012-08-13 15:17:52