当我遇到包含此代码的答案时,我一直在寻找一种方法来检查是否使用Shell Script安装了一个程序:
hash foo 2>&- || { echo >&2 "I require foo but it's not installed. Aborting."; exit 1; }
Run Code Online (Sandbox Code Playgroud)
但该代码不是(人类)可读的,该语法的替代方案是什么?
可读性非常主观.我特别认为原件非常易读,一旦你知道这||意味着短路OR.所以你读原文是"做这个,或者如果那个失败了".
不使用的等效代码||是:
if ! hash foo 2>&-
then
echo >&2 "I require foo but it's not installed. Aborting."
exit 1
fi
Run Code Online (Sandbox Code Playgroud)