
ファイルにいくつかの設定があり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」の内容が出力されることになります。