2013-05-25 115 views
1

我已經寫了下面的bash腳本:與MV bash腳本將無法工作

但運行它時我得到以下輸出:

usage: mv [-f | -i | -n] [-v] source target 
     mv [-f | -i | -n] [-v] source ... directory 

我真的不知道的我做錯了什麼。

回答

3

在配置文件中創建一個函數而不是別名。事情是這樣的 -

uploadToCloud() { 
    echo "which file" 
    read file 
    mv "$file" ~/Dropbox 
} 

當你需要做一些更復雜的函數應該被使用。您的需求是一個功能的完美例子,因爲它對於別名來說太複雜了。

別名應該用於有效更改命令的默認選項的任務。

+0

在這種情況下+1函數確實比別名好得多。也指出了「讀」一行的問題。 – Kent

+0

@肯特謝謝肯特。我甚至沒有在'read line'中看到這個問題。我剛剛看到'alias'被用於類似於'function'的建議。 :) –

+1

我會用+1修復'讀取文件'(而不是'讀取$ file')問題。我不相信任何人都會經常執行代碼以保證它成爲別名或功能 - 在我的生態系統中,它將是一個shell腳本(並且會通過參數獲取文件名,至少作爲主接口)。然而,對於這樣的問題,我是一個老傻瓜 - 現代風格似乎是儘可能地加載到內存中,以便在需要某些事情的極少數情況下節省幾毫秒。 –