我正在嘗試執行以下任務: 編寫一個名爲changedir
的shell腳本,其中 需要一個目錄名,一個命令名和一些附加參數。 然後腳本將切換到指定的目錄中,並且 執行用提供的參數指示的命令。bash腳本改變目錄並執行帶參數的命令
下面的例子:
$ sh changedir /etc ls -al
這應該換入/etc
目錄並運行命令ls -al
。
到目前爲止,我有:
#!/bin/sh
directory=$1; shift
command=$1; shift
args=$1; shift
cd $directory
$command
如果我運行上面像sh changedir /etc ls
它改變並列出目錄。但是,如果我將參數添加到ls
它不起作用。我需要做些什麼來糾正它?
謝謝查爾斯....我是把上面的最後一行設爲「$ cmd」「$ @」,使命令成爲可選的「參數」,即如果我運行「./changedir/etc/ls」,它可以正常工作,也可以「./indir/etc/ls -al「也可以正常工作 – frodo
@frodo:是的,你說得對。 '「$ @」'更好,因爲它在傳遞時保留參數。這是我的意思,但不是我寫的! –