2012-11-01 67 views
0

是否可以添加選項到現有的Bash命令?Bash:添加選項到現有的命令

例如,我將-foo傳遞給特定命令(cp,mkdir,rm ...)時,我想運行一個shell腳本。

+1

1)使shell腳本名爲'CP,MKDIR ,rm',把它們放在一個作爲PATH中第一個項目的目錄中; 2)調整源並重新編譯'cp,mkdir,rm'工具。出於好奇,你爲什麼需要這個? – khachik

+0

謝謝khachik。我想向mkdir添加一個選項,允許在新目錄中輸入。 – ncrocfer

回答

2

您可以爲別名創建別名。 cp它調用檢查您的特殊參數的特殊的腳本,並依次調用特殊的腳本:

$ alias cp="my-command-script cp $*" 

和腳本可以像

#!/bin/sh 

# Get the actual command to be called 
command="$1" 
shift 

# To save the real arguments 
arguments="" 

# Check for "-foo" 
for arg in $* 
do 
    case $arg in 
    -foo) 
     # TODO: Call your "foo" script" 
     ;; 
    *) 
     arguments="$arguments $arg" 
     ;; 
esac 
done 

# Now call the actual command 
$command $arguments 
+0

此解決方案非常完美,謝謝! – ncrocfer