![让 'entr' 执行本地定义的 shell 函数](https://linux22.com/image/169109/%E8%AE%A9%20'entr'%20%E6%89%A7%E8%A1%8C%E6%9C%AC%E5%9C%B0%E5%AE%9A%E4%B9%89%E7%9A%84%20shell%20%E5%87%BD%E6%95%B0.png)
entr
用于在文件更改时运行 shell 命令。以下脚本将输出文件已更改。每当文件/tmp/data.txt被修改。
#!/usr/bin/env sh
echo "/tmp/data.txt" | entr -s 'echo "File changed."'
一旦要执行的命令变得更加复杂,将它们移动到单独的函数并调用该函数会很方便entr
,如下所示:
#!/usr/bin/env sh
foo() { echo "File changed!"; }
echo "$0" | entr -s 'foo' # Error: command not found: foo
不幸的是,这引发了一个找不到命令错误,这表明我的本地定义的函数不可用于entr
.有没有办法让这项工作有效?这里的根本问题是什么?
亲切的问候