shell - 执行脚本的故障安全方法
问题描述
我想从位于多个子目录中的父文件夹执行脚本,以便在每个文件夹中完成脚本后,它会进入下一个文件夹。我的问题是,有时我的文件夹是主文件,我想在其上运行脚本,不存在(在文件夹内),或者我有一个文件,其名称与我对文件夹施加的标准相匹配。那么我如何使脚本“故障安全”,即使它不会遇到正确的文件,或者如果目录实际上是一个文件,它也会进入下一个目录?
到目前为止我写的很简单
#!/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
ETC