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

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

One Solution collect form web for “сценарий оболочки выполняется дважды”

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

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

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

  • как отправить целое число как параметр
  • как объявить переменные командной строки в сценариях оболочки?
  • Необходимо получить последний файл с меткой даты за каждый месяц
  • Распечатайте все приведенные ниже строки после совпадения
  • Команда Bash для разделения одной строки текста на две строки
  • Bash- Помогите изменить код для пользовательского оператора вывода
  • почему ключевое слово export не работает во втором сценарии?
  • Как перенаправить стандартный ввод инструкции `while` в файл?
  • Как извлечь файл из приглашения?
  • Определение переменной в bash с использованием локального ключевого слова
  • Вызов сценария оболочки с параметром -option и параметрами
  • Установить переменную на случайный элемент в массиве
  • Linux и Unix - лучшая ОС в мире.