2016-04-24 6 views
3

は私が通過していますいくつかのbashスクリプトを持っていると私は、コードは多くの変数のために構築し、次の使用していることを見つける:

ID1="{ID2:?}" 

. ${PATH1:?}/file1 

誰かが?が、この中で何をするか理解する上で私を助けてくださいことはできますか?

+2

「ID1」を定義している行が正しいかどうかを確認してください。 '$'が欠けていない?それは 'ID1 =" $ {ID2:?} "'のように意味があります。それはおそらくバグでしょう。 –

+0

(... btw、 '?'は、同じ言語であっても、多くの異なるコンテキストでさまざまなことを意味する可能性があります。そのため、質問のタイトルをコンテキストに指定するのは良いことです; '$ {foo#?}'や '$ {foo%?}'はまったく違うものになり、 'echo foo?'は別の意味を持つでしょう)。 –

答えて

5

このコンテキストでは、パラメータが設定されていないか、またはnullの場合、エラーが発生します。通常、?に続いてカスタムエラーメッセージが表示されますが、カスタムメッセージがない場合は、代わりに一般的なエラーメッセージが表示されます。

$ unset id2 
$ id1=${id2:?} 
bash: id2: parameter null or not set 
$ id1=${id2:?nope} 
bash: id2: nope 
$ id2=9 
$ id1=${id2:?} 
$ echo $id1 
9 
関連する問題