如果你在一个变量中需要一个目录中所有文件的有效性(git pre-commit hook, build lint script),你可以在一个变量中捕获"sh -n"或"bash -n"命令的stderr输出(见其他答案),并基于此有一个" If /else"
bashErrLines=$(find bin/ -type f -name '*.sh' -exec sh -n {} \; 2>&1 > /dev/null)
if [ "$bashErrLines" != "" ]; then
# at least one sh file in the bin dir has a syntax error
echo $bashErrLines;
exit;
fi