bash 脚本:在使用 inotifywait 的简单脚本中读取 while 的含义

发布于 2024-10-22 23:44:48 字数 225 浏览 7 评论 0原文


#!/bin/sh
inotifywait -qme CREATE --format '%w%f' /tmp/watch | while read f; 
do 
ln -s "$f" /tmp/other/; 
done

我发现这个脚本正在寻找对执行特定工作的文件系统事件做出反应的东西。该脚本工作完美,我不明白的是 while read f; 的含义


#!/bin/sh
inotifywait -qme CREATE --format '%w%f' /tmp/watch | while read f; 
do 
ln -s "$f" /tmp/other/; 
done

I've found this script looking for something that react to filesystem event doing a specific job. The script works perfectly what i don't understand is the meaning of while read f;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撩心不撩汉 2024-10-29 23:44:48

它捕获 inotifywait 命令的输出并逐行解析它,将每一行依次分配给 while 语句中的 f

该特定的 inotifywait 命令持续监视 /tmp/watch 目录,并在创建条目时输出完整路径名。

然后,while 循环处理每个文件名,并在 /tmp/other/ 目录中创建指向该文件的符号链接。

下面是一个示例脚本,显示了 while read 的实际操作:

pax> printf "1\n2\n3 4\n" | while read f ; do echo "[$f]" ; done
[1]
[2]
[3 4]

It's capturing the output of your inotifywait command and parsing it line by line, assigning each line in turn to f in the while statement.

That particular inotifywait command continuously monitors the /tmp/watch directory and outputs the full path name when an entry is created.

The while loop then processes each each of those file names and creates a symbolic link to it in the /tmp/other/ directory.

Here's an example script showing the while read in action:

pax> printf "1\n2\n3 4\n" | while read f ; do echo "[$f]" ; done
[1]
[2]
[3 4]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文