2011-02-14 50 views
0

我創建了這個doit函數來執行系統命令,腳本和別名。函數接受一個命令字符串,但不是別名

function doit { 
doit_cmd=$* 
if [[ $cmd_trace = "1" ]] then 
    echo "+ $doit_cmd" 
fi 

$doit_cmd 
ret=$? 
return $ret 
} 

doit函數接受一個命令字符串(包括命令參數)。 它首先將給定的命令及其參數顯示給標準輸出,然後 執行該命令。我通過doit函數 在腳本中執行命令來跟蹤執行的命令。上面的doit 函數中的「$ doit_cmd」這一行對於系統命令和腳本來說非常漂亮,但是當 給doit函數一個別名時失敗了。

下面是該問題的演示。

$別名無線= 'WHOAMI'
$ cmd_trace = 1

$度特WHOAMI
+ WHOAMI

$度特無線
+無線 度特[6]: wi:找不到

有人可以幫我解決這個問題嗎?這是一個限制嗎?

回答

0

使用:eval $doit_cmd執行您的命令。

在另外一個筆記,我認爲你也應該改變$*"[email protected]"

+0

嗨Dogbane,謝謝你的幫助和支持。我已經納入了更改,並且工作正常。 – Goldi 2011-02-14 13:26:26

相關問題