我想从位于几个子目录内的父文件夹执行脚本,以便在脚本在每个文件夹内完成后进入下一个文件夹。我的问题是,有时我有文件夹是要运行脚本的主文件,但不存在(在文件夹内),或者我有一个文件的名称与我对文件夹施加的条件相匹配。那么,如何使脚本“故障保护”,即使脚本没有遇到正确的文件,或者目录实际上是文件,也可以转到下一个目录?
到目前为止我写的东西很简单
#!/bin/bash
for dir in ????Z????; do
cd "$dir" || exit
awk '{print $1, $4, $5, $6}' 18_12* >> attempt1
sed '/^#/ d' <attempt1> attempt2
sed 's/^/2 2 1 /' <attempt2> disp.BDCOBP11
for file in ./*EHZ
do
[[ -e "$file" ]] || break
sta1=$(echo "$file" | gawk -FZ '{print $1}')
sta2=$(echo "$file" | gawk -FZ '{print $2}')
mv disp.BDCOBP11 disp."${sta1}""${sta2}"
done
rm attempt1
cd ..
done
在每个文件夹中都有18_12 *文件和另一个* EHZ文件,所有文件夹都是这样的:
AAAAZBBBB
ABCDZ1234
等