2つのLinuxシステムがあります。各システムでプログラムの存在をテストしています。あるシステムにはプログラムがインストールされ、別のシステムにはインストールされていません。コマンドが$()
各システムで異なる値を返しても、すべてのシステムは次の例を同じ方法で評価します(予想どおり、nvimがインストールされているシステムでは0が返され、nvimがないシステムでは1が返されます)。例:
if [[ $(type nvim &>/dev/null) ]]; then
echo true;
else
echo false;
fi
false
両方のシステムにエコーがあります。
なぜこれが起こり、どのように解決できますか?
ベストアンサー1
努力する:
if type nvim &>/dev/null
then
echo true
else
echo false
fi
ステートメントは返される終了コードif command; then...
によって異なります。command
この[[...]]
コマンドは、文字列の同一性、ファイルの存在など、さまざまな条件に基づいて終了コードを設定できます。man bash
詳細より。ここでは、これらの条件は必要なく、type
便利な終了コードはそれ自体が返されます。