我是编写Shell脚本的新手,并且我有一个名为XML_Files的目录,其中包含xml文件列表
01.xml
02.xml
03.xml
04.xml
我想一一读取所有xml文件,并将这些文件作为输入参数发送到我的存储过程。这样存储过程将相应地一个接一个地处理每个xml文件。
我试图使用for循环来实现这一点,但是我无法获得预期的结果。它只采用了文件目录路径。有人可以帮我在以下脚本中错过的内容吗?
XML_FILES='ls -l $Xml_Files/*.xml'
for f in XML_FILES
do
<<Stored procedure>> $f
if [ $? = 0 ]
then
mv $f $XML_Proccesed_Dir/
else
mv $f $XML_error_Dir/
fi
done
我正在寻找可以从/ xml_files目录中选择文件并将文件作为输入参数发送到存储过程以处理xml文件的工具。
答案 0 :(得分:2)
您可以只使用bash中的通配符扩展来获取文件夹内xml文件的列表。
md_mapid
for f in ${Xml_Files}/*.xml; do
something ${f}
....
done
在此循环中的格式为:
${f}
如果您需要$ {f}为其他格式,则应进一步说明问题。
答案 1 :(得分:1)
您还可以使用find
对找到的每个文件执行给定命令。示例:
find ${Xml_Files} -name '*.xml' -type f -exec something {} \;
这将在目录{{1}中搜索扩展名为xml(-type f
)的每个文件(-name '*.xml'
),并在找到的每个${Xml_Files}
上执行something x
。 / p>
您还可以使用x
执行简短的bash脚本,例如:
find