我的 Linux 脚本中有这个:
find . -name '*.xml' | while read MYXMLFILE; do
echo "Checking $MYXMLFILE"
sleep .5
....
....
fi
done
但我发现,尽管该位置有许多 .xml 文件,但 echo 却没有执行任何操作。
这里有什么问题?
答案1
请尝试以下操作:
for MYXMLFILE in `find . -name '*.xml'`; do
echo "Checking $MYXMLFILE"
sleep .5
....
....
done
答案2
如果你希望使用带有特殊字符的 xml 文件,例如空格file 1.xml
,你可以使用 -exec 创建一个 find 命令,例如
find -name '*.xml' -exec echo "Checking '{}'" \; -exec cat {} \;
其中{}
是 找到的文件名的占位符find
,它可以管理带有特殊字符的文件名。
如果您的文件名没有包含特殊字符,DTdev 使用for
命令的答案可能会很好用。
编辑:如果你想做更复杂的事情,你可以创建一个单独的 shellscript,通过-exec
使用文件名作为参数来调用它,例如
find -name '*.xml' -exec ./doer-script {} \;