/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给了我一个目录列表,但我不知道如何找到我想要的目录。
请帮助=)
对不起,我的英语
发布于 2011-01-21 16:34:09
谢谢你的回答!这就是我所使用的,并且看起来运行良好:
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-21 02:35:14
基本上,你在脚本中有一些错误,除此之外,我认为这不是正确的方法。
不管怎样,首先,你应该这样做:
found=`find /Users -type d`(注意‘and not’的用法)
这将在$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然后看看您得到了什么,find输出将打印每个txt文件所在的目录,这与您正在尝试执行的操作相同,但只有一步。
https://stackoverflow.com/questions/4339058
复制相似问题