意味

2013-05-03 13 views
6

私は、コードのこの部分を理解しようとしています:意味

. functions.sh || { : ; echo "Error while loading the specified file" >&2; exit 2; } 

私は指定されたファイルが利用できない場合、ブラケット内のコードが呼び出されることを取得します。しかし、これはどういう意味ですか?: ;? また、削除するとスクリプトが機能しません。

答えて

16

colon is null statementなので、何もしません。セミコロンends a list of commands

誰もが上記を書いている理由は分かりませんが、基本的には「何もしないで、次にechoを実行してください」と単純化できるようです。誰かのコピー貼り手荷物かもしれない。

+0

ただし、これを書いた場合は、 '。 functions.sh || {echo "指定されたファイルの読み込み中にエラーが発生しました">&2;出口2。 } 'それではうまくいきません - exitコマンドは何とか私が推測する必要があります。 – aa007

+1

Nevermind .. {記号の後ろにスペースを入れるのを忘れた。どうもありがとう! :) – aa007

+11

'do_something || : 'set -e' AKA' set -o errexit'が有効になっていれば、スクリプト全体を終了させる 'do_something'の失敗を無視するという慣用的な意味です。 –