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

У меня есть этот небольшой фрагмент кода в 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 (исправлено уже)

  • как grep имена файлов на основе даты
  • Проверьте веб-каталог, если существует файл, если не выходить
  • Два условия в if (только положительные числа без букв)
  • rm все файлы справа от "==", напечатанные на экране
  • Скрипт для входа на несколько серверов и выполнения команд и добавления вывода в один файл
  • Для цикла в bash-скриптах
  • Строим пути
  • Нажмите любую клавишу, чтобы остановить цикл
  • One Solution collect form web for “сценарий оболочки выполняется дважды”

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

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

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

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