1

変な見た目のメッセージを出力するために、.bashrc に次のものがあります。

fortune | cowsay -W 65

fortuneコンピューターにインストールされていないか、インストールされていない場合は、この行を実行したくありませんcowsay

このチェックを実行する最良または最も簡単な方法は何ですか?

4

3 に答える 3

1

typeまたはwhichまたはを使用hashして、コマンドが存在するかどうかをテストできます。

それらのすべてから、which実行可能ファイルでのみ機能します。スキップします。

の行で何かを試してください

if type fortune &> /dev/null; then
    if type cowsay &> /dev/null; then
        fortune | cowsay -W 65
    fi
fi

または、ifs なし:

type fortune &> /dev/null && type cowsay &> /dev/null && (fortune | cowsay -W 65)
于 2013-01-24T06:29:38.987 に答える
1

typeそのためのツールです。これは Bash ビルトインです。私がかつて思っていたように、それは時代遅れではありませんtypeset。1つのコマンドで両方を確認できます

if type fortune cowsay
then
  fortune | cowsay -W 65
fi

また、出力を STDOUT と STDERR に分割するため、成功メッセージを抑制することができます

type fortune cowsay >/dev/null
# or failure messages
type fortune cowsay 2>/dev/null
# or both
type fortune cowsay &>/dev/null

プログラムが Bash スクリプトから存在するかどうかを確認する

于 2013-01-24T07:05:57.667 に答える
0

インストールされていない場合にエラーメッセージが表示されないようにする場合は、次のようにします。

(fortune | cowsay -W 65) 2>/dev/null
于 2013-01-24T06:27:20.923 に答える