我是shell脚本新手。我尝试了下面的代码,首先检查指定目录中是否存在任何XML文件。如果找到一个,那么我需要将XML文件存储到数组中以处理数据。但下面的行不起作用。我究竟做错了什么?请建议正确的方法。
if [ -f ${Input_Path}/ABC/*.XML ]
then
arr=(${Input_Path}/ABC/*.XML)
for i in "${arr[@]}";
do
.......
done
答案 0 :(得分:0)
您可以使用如下;
#!/bin/bash
Input_Path=$1
myarray=()
while IFS= read -rd '' files; do
myarray+=("$files")
#do something;
done < <(find ${Input_Path} -type f -name '*.xml' -print0)
printf '%s\n' "${myarray[@]}"
按以下方式运行;
./script <yourInputPath>
前:
user@user-host:/tmp/1$ ./test.sh /tmp/1
/tmp/1/2.xml
/tmp/1/4.xml
/tmp/1/3.xml
/tmp/1/1.xml