Что такое использование; в одной строке?

Что делает ; в однострочных сценариях:

 while true; do sudo -n true; sleep 60; kill -0 '$$' || exit; done 2>/dev/null & 

Означает ли это новую строку или «следующую команду»?

One Solution collect form web for “Что такое использование; в одной строке?”

Это разделитель команд. Хотя в первом случае было бы лучше подумать об этом как о завершении утверждения while .

Например, если вы хотите сделать цикл, пока какая-то команда возвращает успех, вы бы сделали что-то вроде

 while test -f /foo; do some_command; done` 

Точка с запятой используется для указания конца аргументов для test . В противном случае это может показаться, что do еще один аргумент для test .

Однако вместо точки с запятой можно использовать символы новой строки. Следующее было бы точно эквивалентно приведенному выше примеру, без каких-либо точек с запятой

 while test -f /foo do some_command done 

Фактически с bash, если вы запустите указанную выше команду, а затем после ее завершения (или вы CTRL + C it), если вы вернетесь в историю (стрелки вверх или еще много чего), вы заметите, что она заменяет многострочный команда с одним, использующим точку с запятой.


Итак, да, синтаксис таких вещей, как if и в while нарушает нормальное поведение оболочки.
Я лично всегда думал, что синтаксис странный, поскольку do выглядит странно. Но вы привыкли к этому.

  • Переменная как команда; eval vs bash -c
  • Руководство / помощь с использованием диалога с bash-скриптами
  • Могу ли я применить `tmux` к сценарию bash?
  • Сценарий Bash для получения значений ASCII для алфавита
  • Сценарий оболочки для записи выбранных полей в одну строку
  • Регулярное выражение в сценарии bash
  • Как удалить файлы только, но сохранить структуру каталогов?
  • Копировать команду из истории в приглашение bash
  • вывод printf в следующую строку
  • Запись, начиная с определенного номера строки в текстовом файле
  • Как удалить любую строку из файла с помощью сценариев оболочки?
  • Interesting Posts

    Как расширить имена файлов с помощью Tab, даже если в пути используется переменная оболочки?

    как получить доступ к другому пользователю может получить доступ к моей учетной записи?

    Какой драйвер используется беспроводным адаптером USB?

    Использование xcape + xmodmap для изменения некоторых ключей

    wget изменение имени изображения изнутри страницы

    centOS на flashdrive

    Virtualbox 64-битное изображение на 64-битном компьютере без поддержки виртуализации

    Как я могу использовать wget для создания списка URL-адресов из index.html?

    Как добавить скрипты для udev для запуска

    Ограничение использования памяти ЦП для служб для предотвращения сбоя

    создавать несколько файлов / dev / xconsole автоматически при загрузке

    где я должен изменить данный сценарий оболочки?

    перемещение Linux на другое устройство

    Raspbian – сервер Apache недоступен через Интернет

    LD_LIBRARY_PATH игнорируется Python 2.7

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