/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脚本,该脚本可以找到应用程序下载字幕的文件夹,如果它们存在,则使用growl通知用户。
$ found给了我一个目录列表,但我不知道如何找到我想要的那个..
请帮助=)
抱歉我的英文
答案 0 :(得分: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
答案 1 :(得分:0)
基本上你在脚本中有一些错误,除了它们,我不认为这是正确的方法。
无论如何,首先,你应该这样做:
found=`find /Users -type d`
(注意使用`而不是')
那将存储在/找到/ Users下的目录列表,-mmin 1 param只列出在最后一分钟创建的目录,如果这是正确的,只需再次添加。
稍后您需要循环结果以查找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文件所在的目录,这与你尝试做的相同,但只有一步。