0
に私は私のbashスクリプトの先頭に次のしている:私はこれを調達する場合(.
を使用して)次のものを使用して終了:? bashの
"${PROJECT_DIR:?"Need to set PROJECT_DIR by sourcing <project dir>/setup.sh"}"
echo "D'oh!"
私は、次を得る:
-bash: PROJECT_DIR: Need to set PROJECT_DIR by sourcing <project dir>/setup.sh
D'oh!
私はときに終了し期待していました変数が設定されていません。何か不足していますか?
'$ {name:?...}'は、非対話型シェルからのみ終了します。対話シェルからスクリプトを入手しましたか? – chepner
Aha。それが問題です。これはインタラクティブです。 コマンドは機能しますが、シェルを終了することはありません –
対話的に何かをソーシングするには、 'exit'ではなく' return'を使用します。そうしないと、呼び出しシェルが終了します。 –