Shell脚本"|| {}"可读替代

Nat*_*pos 4 syntax bash shell

当我遇到包含此代码的答案时,我一直在寻找一种方法来检查是否使用Shell Script安装了一个程序:

hash foo 2>&- || { echo >&2 "I require foo but it's not installed.  Aborting."; exit 1; }
Run Code Online (Sandbox Code Playgroud)

但该代码不是(人类)可读的,该语法的替代方案是什么?

Jul*_*ano 9

可读性非常主观.我特别认为原件非常易读,一旦你知道这||意味着短路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)