ファイルconfig
にいくつかの設定があり、そのファイルをcat
したいと思います。ただし、config
が存在しない場合もあります。この場合、コマンドにデフォルト値を出力させたいのですが。
おそらく次のように機能したもの:
$ ls
$ cat config || echo 42
42
$ echo 73 > config
$ cat config || echo 42
73
あなたの構成は大丈夫です。あなたは何かをすることさえできました
cat config || cat defaultconfig
ランダムコマンド(コメントの./get_config_from_web
など)を使用する場合は、コマンドが適切な戻りステータスを提供することを確認する必要があります。これはトリッキーになる可能性があります。シェルスクリプトは最後に実行されたコマンドの結果を返すだけです。何か他の結果が必要な場合は、exit
を実行する必要があります。
以下は、キャッチされていないエラー条件に対して42をエコーします。
trap "echo 42" ERR
これを構成可能な変数にすることができます:
trap 'echo "${CONFIG:=42}"' ERR # if $CONFIG is not set, it will be defaulted to 42
if [ -a config ]; then cat config; else echo ${DEFAULT};fi
変数DEFAULTがあらかじめ何かに設定されていると仮定します。
Ifステートメントで終了コードを使用できます。
#!/bin/bash
cat config
if [[ "$?" -ne "0" ]]; then
echo "VALUE"
fi
前のコマンドが成功すると、「0」の値で終了します。したがって、他の出口(失敗)では、「VALUE」にあるものは何でも出力することを伝えています。