Bash

未提供參數時,將 bash 配置為使用最後一個參數執行命令

  • March 12, 2013

我想配置 bash,以便當我執行不帶參數的命令(最好是從命令列表,而不是任何命令)時,它會採用前一個命令的參數。

因此,例如我輸入emacs ~/.bashrc,然後當我輸入 時source,bash 執行source ~/.bashrc. 我知道這是可能的,但我不知道在哪裡尋找這樣的選擇。

在按之前,您可以按Spacethen Meta+ 。這樣做的好處是,即使在應用於無參數時有意義的命令也可以使用它。對於, 用於輸入更少。.``Enter``source``.

如果你是老派,你可以用它!^來呼叫前一個命令中的!$第一個參數,或者呼叫最後一個參數,或者!*呼叫所有參數(命令名稱除外)。

您可以通過編寫環繞每個命令的函式來獲得您所描述的行為。上一個命令的最後一個參數在特殊參數中可用$_

make_wrapper_to_recall_last_argument () {
 for f do eval <<EOF; done
function $f {
 if [ \$# -eq 0 ]; then set -- "\$_"; fi
 command $f "\$@"
}
EOF
}
make_wrapper_to_recall_last_argument source .

引用自:https://unix.stackexchange.com/questions/67690