我在bash脚本中有一个函数,它对文件执行diff
。我已经设置为echo
diff
如果存在,但是如果不存在,我只想打印出"No differences found in ANY Task Definitions"
如果if-else语句中的所有条件都为空,则打印'something'
这是我的;
diff_taskDef() {
MAS=master.json
CUR=current.json
clear
mapfile -t awsReg < <(ls ~/regions)
for awsrg in "${awsReg[@]}"; do
mapfile -t awsTD < <(ls ~/regions/"$awsrg")
for td in "${awsTD[@]}"; do
DIFF="$(diff -q ~/regions/"$awsrg"/"$td"/"$td"-"$MAS" ~/regions/"$awsrg"/"$td"/"$td"-"$CUR")"
echo "$DIFF"
done
done
因此,而不是一个空白的屏幕,或者通过每个语句滚动没有积极diff
说"no diff found"
我只是想一个如果没有不同
不要使用'ls'这样的。 'awsReg =(〜/地区/ *)'。除了对所有有效的文件名都正确之外,当迭代它们时,不必将'〜/ regions /'添加回名称。 – chepner