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スクリプトを作成しようとしています。

$found ディレクトリのリストが表示されますが、目的のディレクトリにアクセスする方法がわかりません..

助けてください=)

私の英語でごめんなさい

4

2 に答える 2

1

答えてくれてありがとう!これは私が使用したもので、うまく機能しているようです:

for FILE in "$@"
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
于 2011-01-21T08:34:09.293 に答える
0

基本的に、スクリプトにいくつかのエラーがありますが、それ以外に、それが正しい方法だとは思いません。

とにかく、最初に、あなたはするべきです:

found=`find /Users -type d`

(「ではなく」の使用に注意してください)

これにより、$foundに/Usersの下のディレクトリのリストが格納されます。-mmin1パラメータは、直前に作成されたディレクトリを一覧表示します。正しい場合は、もう一度追加します。

その後、結果をループして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つのステップだけです。

于 2011-01-20T18:35:14.183 に答える