我需要创建一个 shell 脚本,它只会在特定源(例如 /var/www/html/folder1/source/)下查找文件(例如 *.jpg),并且必须对 Find 命令返回的输出进行一些操作。以下是我在脚本中编写的命令
outputvar = find /var/www/html/folder1/source/ -name \*.jpg
如何对存储 find 命令输出的变量进行遍历操作?
您可能希望将find
命令的输出放在一个文件中,例如
find /var/www/html/folder1/source/ -name \*.jpg > /tmp/find.out
您还可以将该输出放入 shell 变量中,例如
outfindvar=$(find /var/www/html/folder1/source/ -name \*.jpg)
然后你可以迭代它们
for jpgfile in $outfindvar; do
## do something with $jpgfile
done
如果您的文件名中有空格,请小心。在这种情况下,请考虑使用 ; 的-print0
动作find
。或者也许使用辅助脚本来执行该-exec
操作。
你真的应该阅读Advanced Bash Scripting Guide
您可能希望以
#!/bin/bash -vx
-vx
在调试它时,一旦你的脚本运行良好,就删除它。
如何将输出管道传输到您想要使用它做的任何其他事情?
find /var/www/html/folder1/source/ -name \*.jpg | other_command