条件文でスクリプトを終了するには?

条件文でスクリプトを終了するには?

bashスクリプトを作成していますが、ユーザーがrootでない場合はスクリプトを終了したいと思います。条件は正常に実行されますが、スクリプトは終了しません。

[[ `id -u` == 0 ]] || (echo "Must be root to run script"; exit)

&&代わりに試してみましたが、;どちらも機能しません。

ベストアンサー1

次のことができます。

[[ $(id -u) -eq 0 ]] || { echo >&2 "Must be root to run script"; exit 1; }

(最初のステートメントに算術バイナリ演算子を含む「一般」条件式)または:

(( $(id -u) == 0 )) || { echo >&2 "Must be root to run script"; exit 1; }

(最初のテストの算術評価)。

変更()-> {}-bracesに注意してください。いいえサブシェルを作成します。 (「サブシェル」を検索してくださいman bash。)

おすすめ記事