2012-02-24 19 views
6

私はPostgresコンソールコマンドcreatedb appname_production_masterを持っています。この名前のデータベースがすでに存在する場合、エラー終了コードを返します。linuxのコマンド終了コードを無視する

このコマンドで終了コードを返さないようにすることはできますか?

答えて

18

終了コードを無視してください(例:this)。

createdb appname_production_master || true 
+3

は厳密に言えば、これは、終了コードを無視していませんが、それは常に成功表現でそれを使用しています。 –

+1

"<> ||:"コロンは常に成功するヌルコマンドです – killthrush

1

UNIXコマンドは常に終了コードを返しますが、終了コードに応答する必要はありません。

コマンドを実行すると、$?にプロセスの終了コードが設定されます。これはすべてのコマンドで発生するため、最初のコマンドの後に別のコマンドを実行すると、$?が変更されます。ここで

createdb appname_production_master # returns 1, a failure code 
# $? is 1 
/bin/true # always returns 0, success 
# $? is 0 

は別の例です:たとえば

/bin/false # returns false, I assume usually 1 
echo $? # outputs 1 
echo $? # outputs 0, last echo command succeeded 
関連する問題