ファイルにいくつかの設定があり、そのファイルがconfig
必要ですcat
。しかし、時にはconfig
存在しないこともあります。この場合、コマンドにデフォルト値を出力させたいと思います。
たぶん、次のように動作します。
$ ls
$ cat config || echo 42
42
$ echo 73 > config
$ cat config || echo 42
73
答え1
あなたのビルドは素晴らしいです。あなたは次のことをすることもできます
cat config || cat defaultconfig
任意のコマンド(注釈のような./get_config_from_web
)を使用する場合は、そのコマンドが実際に合理的な戻り状態を提供していることを確認する必要があります。これはトリッキーかもしれません。シェルスクリプトは、最後に実行されたコマンドの結果のみを返し、exit
他の結果が必要な場合は。
答え2
捕捉されていないエラー条件の場合、以下は42を示しています。
trap "echo 42" ERR
設定可能な変数にすることができます。
trap 'echo "${CONFIG:=42}"' ERR # if $CONFIG is not set, it will be defaulted to 42
答え3
if [ -a config ]; then cat config; else echo ${DEFAULT};fi
DEFAULT変数が特定の値にプリセットされているとします。
答え4
if文で終了コードを使用できます。
#!/bin/bash
cat config
if [[ "$?" -ne "0" ]]; then
echo "VALUE"
fi
前のコマンドが成功すると、「0」の値で終了します。したがって、他の終了(失敗)が発生すると、「VALUE」の内容が何でも出力されることを知らせます。