首页 > 解决方案 > 执行脚本的故障安全方法

问题描述

我想从位于多个子目录中的父文件夹执行脚本,以便在每个文件夹中完成脚本后,它会进入下一个文件夹。我的问题是,有时我的文件夹是主文件,我想在其上运行脚本,不存在(在文件夹内),或者我有一个文件,其名称与我对文件夹施加的标准相匹配。那么我如何使脚本“故障安全”,即使它不会遇到正确的文件,或者如果目录实际上是一个文件,它也会进入下一个目录?

到目前为止我写的很简单

#!/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

标签: shell

解决方案


推荐阅读