Ожидание / dev / sda1, чтобы стать доступным, с таймаутом, в сценарии оболочки

У меня есть образ Linux, который при загрузке должен выполнить скрипт, который будет расположен на подключенном к нему пальцевом указателе. Вот что у меня есть.

mkdir /mnt/usb mount /dev/sda1 /mnt/usb cd /mnt/usb/DMS cp script.sh / chmod +x /script.sh /bin/sh /script.sh 

Этот скрипт добавляется в конце скриптов sysvinit. Он работает с большинством дисков, однако некоторые диски требуют времени, чтобы получить признание. Это значит, что мой скрипт не сработает, потому что /dev/sda1 пока недоступен.

Как изменить этот сценарий оболочки для выполнения времени / ожидания на устройстве с таймаутом, если ни один из них не найден.

Псевдокод:

 counter = 1 while /dev/sda1 not present sleep 100 counter++ if counter is 50 exit # no drive ever found endif endwhile # do stuff with plugged in drive, mount it, whatever 

Как выполнить что-то подобное в сценарии оболочки?

One Solution collect form web for “Ожидание / dev / sda1, чтобы стать доступным, с таймаутом, в сценарии оболочки”

Перевод вашего псевдокода прямо в оболочку get

 #!/bin/sh counter=0 while [ ! -e /dev/sda1 ]; do sleep 100 counter=$((counter + 1)) if [ $counter -ge 50 ]; then exit fi done 

При желании вы можете изменить -e /dev/sda1 на -b /dev/sda1 для проверки блочного устройства.

  • Можно ли отслеживать отправленные письма?
  • Добавление вывода команды в цикл for
  • Сценарий для ssh и запуск команды не работает
  • Как установка бита Setuid влияет на сценарии оболочки, которые запускаются при загрузке системы, до того, как произошел какой-либо логин?
  • Как удалить конечную новую строку в bash?
  • Как предотвратить удаление скрипта
  • Уведомление слушателя, странное поведение
  • notepad ++ добавляет \ r к скриптам оболочки
  • Помогите разобрать эту команду `find`
  • Автоматическое ведение журнала скриптов, выполняемых пользователями
  • Отформатируйте раздел справки о том, чтобы дефрагментировать флаг в одном столбце
  • Interesting Posts

    Скопировать папки сразу

    Команда grep для извлечения только определенного слова

    Ограничить доступ на внешний накопитель, установленный и используемый sftp

    Как я могу вернуться в «обычный» режим редактирования после нажатия esc в режиме zsh (vi)?

    Лучшая практика для установки времени в локальной сети с использованием NTP

    empty modules.dep для новой компиляции ядра

    Можно ли изменить значения приоритета / симпатии для доступа приложения к NIC, отдавая приоритет пропускной способности?

    Запуск программ на Linux в Linux

    Какая команда очистить ошибку «ИДЕНТИФИКАЦИЯ ДИСТАНЦИОННОГО ХОЗЯИНА ИЗМЕНЕНА!»

    Загружать вложения в URL-адрес перенаправления через Axel

    VIM – изменить время ожидания комбинированных ключевых карт

    10-я предыдущая строка из матча

    Изменение версии Resolv.conf DNS

    После перезагрузки подключитесь к удаленному рабочему столу

    bash для чтения первого аргумента в качестве входного файла и поиска переменной в другом файле по строкам

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