2016-07-08 131 views
1
rm -rf 
rm -r 
rm -f 
rm 

當這些命令中的任何一個運行時,我希望它們運行某個腳本。執行命令時運行腳本,不管命令的參數如何

喜歡的東西alias ?='some_script.sh'

(在這種情況下,問號意味着任何參數的rm命令。)

如何才能做到這一點?我不必使用別名,任何工作都很好。

回答

2

不要使用別名;定義一個函數:

rm() { 
    some_script.sh 
    command rm "[email protected]" 
} 

修改的rm時的行爲以任何方式應用於標準的免責聲明。不要這樣做some_script.sh旨在成爲某種安全網。如果在沒有安裝此安全網的機器上運行rm,您可能會變得依賴它,並且感到不快。

1

如果您的要求是在每個bash命令上運行該腳本,那麼最好的方法是將其附加到bash中的一個特殊變量,每次在提示中輸入命令時都會執行該變量。

PROMPT_COMMAND變量,所有你需要做的就是你的腳本some_script.sh追加到它像

$ PROMPT_COMMAND+="some_script.sh;" 

或者,如果你想只在命令rm腳本,然後保持一個別名是最好的方式做它。進行更改後,在您的~.bashrcsource中添加該行。

alias rm="some_script.sh; rm"