我寫bash腳本用下面的代碼:bash的識別mv命令交互但在腳本命令錯誤
#! /bin/bash
sc_files=`grep -l 'string' /home/test/dirpath/*`
sc_dir='/home/test/mvdir'
for i in $sc_files
do
"mv -f $i $sc_dir";
done
腳本的輸出產生: ./test.sh:線6 :MV -f /home/test/dirpath/test.txt /家/測試/ mvdir:沒有這樣的文件或目錄
然而,當這個確切的mv命令將被複制到同一個用戶在shell下,它的工作原理和移動文件。該目錄被命名,並有路徑,在腳本(如前所述,當命令被直接複製到一個交互的shell移動工作),我的用戶有rwx權限的源和目標目錄都。這些文件本身是由不同的用戶擁有的,但這不應該成爲對目錄寫入權限的問題。任何想法將不勝感激?
這很好,但可能有太多'<'對某些人來說也許:-) grep的' -l'string'/ home/test/dirpath/* |而讀-r'...會更容易閱讀。 – 2011-12-21 18:42:43
很難選擇一個最好的位置,因爲他們是正確的。你有最詳細(並刷新我的記憶上的bash,它已經有一段時間),所以拜多給你,大家誰花時間來回答。 – 2011-12-21 19:19:28
@AaronMcDaid - 雖然這可能是更容易閱讀,管道產生一個子shell而命令替換沒有。 – jordanm 2011-12-21 19:44:53