2010-12-02 151 views
0
/usr/local/bin/growlnotify -m 'Looking for subtitles...' 
found='find /Users -type d -mmin -1' 
found1='find $found/*.txt' 

if [ -d "$found1" ]; 
     then 
    /usr/local/bin/growlnotify -m "Subtitles downloaded!" 
    else 
    /usr/local/bin/growlnotify -m "Could not download subtitles" 
fi 

我想寫一個bash腳本來查找應用程序下載字幕的文件夾,並通知用戶使用咆哮,如果他們是否存在。如何在特定目錄(-mmin -1)中找到特定文件(txt)?

$發現給我的目錄列表,但我不知道怎麼去一個我想..

請幫助=)

對不起,我的英語

+0

您發佈的腳本存在問題。如果要執行命令,則必須使用反引號(`\``)而不是單引號(```)。我不確定這是否會回答您的原始問題,但至少可以讓腳本運行。 – chrisaycock 2010-12-02 23:05:35

回答

0

基本上你在腳本中有一些錯誤,除此之外,我不認爲這是正確的方法。

不管怎樣,首先,你應該做的:

found=`find /Users -type d` 

(請注意使用的',而不是「)

將存儲在$發現目錄的列表下/用戶, - mmin 1 param只列出在最後一分鐘創建的那些dirs,如果這是正確的,只需再次添加。

以後,你需要循環的結果,以尋找TXT文件:

for d in $found; do 
    #here you do ll or find for .txt files, using $d as dir 
done 

這種方式是不是最適合我的,我認爲你可以這樣做:

find /Users -name *.txt 

然後看看你得到了什麼,find輸出將打印每個txt文件所在的目錄,這與你正在嘗試做的一樣,但只有一個步驟。

1

感謝您的答案!這是我使用的,似乎工作得很好:

for FILE in "[email protected]" 
do 
if [ -e "${FILE%.*}.txt" ]; 
       then 
        /usr/local/bin/growlnotify -a iNapi -m "Napisy zostały pobrane!" 
       else 
        /usr/local/bin/growlnotify -a iNapi -m "Nie udało się pobrać napisów." 
      fi 
done 
相關問題