我有一个文件系统结构如下:
- 父目录
- 管弦乐器
- init.sh
- 子目录1
- install.sh
- 子目录2
- install.sh
- 子目录3
- install.sh
在www.example.com内init.sh,我有:
# !/bin/bash
set -e
######################
# Run all installers #
######################
cd "$(dirname $0)"/..
# find the installers and run them interatively
find ../ -name install.sh -type f -exec chmod a+x {} \;
find . -name install.sh | while read installer ; do sh -c "${installer}" ; done
这在大多数情况下都是有效的,但它是脆弱的。如果某个install.sh脚本遇到问题,该init.sh脚本将停止。如果发生这种情况,我希望它继续运行下一个install.sh脚本。但我不确定如何使其工作。
1条答案
按热度按时间8zzbczxx1#
将
sh -c "${installer}"
替换为sh -c "${installer} || true"
应该可以,因为true
总是返回0。