【发布时间】:2016-01-23 01:46:37
【问题描述】:
我正在尝试编写一个简单的脚本,该脚本会查看所有 .log 文件并 grep 查找特定字符串,并根据其值发送一封电子邮件。
tail -f **/*.log | while read LOGLINE
do
[[ "${LOGLINE}" == *"complete!"* ]] && pkill -P $$ tail |
echo "LOG" | mutt -s "Test Passed!" abc@xyz.com
[[ "${LOGLINE}" == *"FAILURE"* ]] && pkill -P $$ tail |
echo "LOG" | mutt -s "Test Failed!" abc@xyz.com
done
但是这给了我以下结果:
tail: cannot open `**/*.log' for reading: No such file or directory
tail: no files remaining
如果我提供了准确的路径,脚本就可以正常工作。 我怎样才能使父文件夹和所有子文件夹中的所有 .log 文件都能正常工作?
【问题讨论】:
-
你想用
**做什么? -
@e0k 尝试遵循此处给出的示例:stackoverflow.com/questions/18321336/… 他们建议“*/.log”
-
好的,
**/来自globstar 选项,仅匹配目录和子目录。是否在 shell 中启用了globstar选项?.log文件是在当前目录下还是子目录下?