Bash脚本用于读取文件并根据特定字符串运行命令

时间:2014-10-14 22:46:52

标签: linux bash

我需要一个bash脚本,当文件保存到特定目录(文件名可以是任何内容)时,读取其内容然后,如果找到文件中的特定字符串,则运行特定命令/或另一个脚本。

我查看了Bash script: perform actions based on file contents但这个脚本似乎依赖于被命名的文件。我的bash脚本是无用的,所以希望有人可以提供帮助:)

1 个答案:

答案 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

我建议您查看inotifywaits manual以获取有关命令行选项的更多详细信息