シェルスクリプトが2回実行される

シェルスクリプトが2回実行される

パスワードを設定するために、シェルスクリプトには次のような小さなコードがあります。

if [[ -z "${PASS+x}" ]]; then
    read -p "enter pass or use default [test1234]" PASS
    if [[ -z "$PASS" ]]; then
        PASS="test1234"
    fi
fi


if [ $EUID != 0 ]; then
    sudo "$0" "$@"
    exit $?
fi

スクリプトを実行すると、読み取りコマンドが2回実行されます。このようなことは起こってはいけません。誰もがエラーを見つけるのに役立ちますか?

フルスクリプト:github(修正済み)

ベストアンサー1

リンクしたスクリプト全体には、次のものが含まれます。

if [ $EUID != 0 ]; then 
    sudo "$0" "$@" 
    exit $? 
fi 

readこれは、すべてのオプション処理と質問に示されている呼び出しの後に行われます。私の考えは、再起動スクリプトを使用してこのコードブロックをタップしてコマンドをダブルsudoクリックすることですread。一度は再起動スクリプトを使用する前とsudo一度は後です。

おすすめ記事