1

我需要创建一个 shell 脚本,它只会在特定源(例如 /var/www/html/folder1/source/)下查找文件(例如 *.jpg),并且必须对 Find 命令返回的输出进行一些操作。以下是我在脚本中编写的命令

outputvar = find /var/www/html/folder1/source/ -name \*.jpg

如何对存储 find 命令输出的变量进行遍历操作?

4

2 回答 2

4

您可能希望将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在调试它时,一旦你的脚本运行良好,就删除它。

于 2012-11-08T06:34:28.320 回答
2

如何将输出管道传输到您想要使用它做的任何其他事情?

find /var/www/html/folder1/source/ -name \*.jpg | other_command
于 2012-11-08T06:36:00.523 回答