我需要一个bash脚本,当文件保存到特定目录(文件名可以是任何内容)时,读取其内容然后,如果找到文件中的特定字符串,则运行特定命令/或另一个脚本。
我查看了Bash script: perform actions based on file contents但这个脚本似乎依赖于被命名的文件。我的bash脚本是无用的,所以希望有人可以提供帮助:)
答案 0 :(得分:1)
如果您安装了inotify-tools
软件包,则可以使用inotifywait
:
#!/bin/bash
DIR_TO_WATCH=/tmp
STRING=foobar
cd "$DIR_TO_WATCH"
inotifywait -qme close_write --format '%f' -r ./ | while read changed_file; do
if grep "$STRING" "$changed_file" &>/dev/null; then
echo "$STRING found on file $changed_file!"
fi
done
我建议您查看inotifywait
s manual以获取有关命令行选项的更多详细信息