сценарий оболочки выполняется дважды

У меня есть этот небольшой фрагмент кода в shellscript для установки пароля:

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 

Когда я запускаю скрипт, команда чтения выполняется дважды. Это не должно произойти. Может кто-нибудь помочь мне найти ошибку.

полный скрипт: github (исправлено уже)

  • помощь для создания сценария оболочки для печати буднего дня и выходных
  • пытаясь передать несколько строк, один за другим (каждая строка имеет 3 элемента, разделенных пробелом), поданных в уже написанный скрипт
  • Как проверить входной параметр для запуска сценария оболочки
  • Поиск деловой даты в пределах диапазона
  • С помощью сценария оболочки с jstest, как я могу заставить геймпад взаимодействовать с моим скриптом?
  • Как закончить сценарий оболочки?
  • Как узнать, что происходит в фоновом режиме, когда мы запускаем файл .sh в Linux?
  • Unix-скрипты - для команды do с &
  • One Solution collect form web for “сценарий оболочки выполняется дважды”

    В вашем полном скрипте, с которым вы ссылаетесь, вы имеете следующее:

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

    Это делается после обработки всех параметров и read которые вы показываете в своем вопросе. Я предполагаю, что вы нажимаете этот блок кода, повторно создаете скрипт с помощью sudo и дважды нажимаете команду read – один раз перед перезапуском скрипта с использованием sudo и после этого.

    Linux и Unix - лучшая ОС в мире.