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 下的目录列表, -mmin 1 参数仅列出最后一分钟创建的目录,如果正确,只需再次添加即可。

稍后您需要循环结果以查找 txt 文件:

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

这种方式对我来说不是最好的,我认为你可以这样做:

find /Users -name *.txt

然后看看你得到了什么,查找输出将打印每个 txt 文件所在的目录,这与你尝试做的相同,但只有一步。

于 2011-01-20T18:35:14.183 回答