2017-09-07 8 views
0

私はこのようなbashのコードがあります。ここではなぜbashはカールの後でコードを実行しないのですか?

set -x 
status=$(curl --write-out '%{http_code}' $nb_url) 
echo "got status code = $status" 

は、私が得たデバッグ出力です:

++ curl --write-out '%{http_code}' 'https://myurl:54516/?token=89835a6dd0793eda' 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0curl: (7) Failed connect to myurl:54516; Connection refused 
+ status=000 

だから、ステータスが000に設定されているが、エコーは実行しません。なぜなのかご存知ですか?

+2

「を-e設定」していたということですが、あなたが '以前にそのようなスクリプトか何かでどこか-e'設定していますか? –

+0

私はset -eで同じ出力を得ました。 –

+0

ええ、私は 'set -e'が観察された振る舞いを引き起こすと期待します。その行の後にスクリプトを終了させるでしょう。 –

答えて

0

問題は、私は私のスクリプトで

set -e # <-- Remove this line it works 
set -x 
status=$(curl --write-out '%{http_code}' $nb_url) 
echo "got status code = $status" 
関連する問題