コマンドがゼロ以外の終了コードを返す場合は、デフォルト値を指定します。

コマンドがゼロ以外の終了コードを返す場合は、デフォルト値を指定します。

ファイルにいくつかの設定があり、そのファイルが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」の内容が何でも出力されることを知らせます。

関連情報