Intereting Posts
Должен ли я попытаться избавиться от «несоответствующего ioctl для устройства» в выводе strace для сценария Bash? Как настроить и использовать yowsup-cli для получения кода аутентификации Whatsapp? Не удается установить libghc-xmonad-dev и libghc-xmonad-contrib-dev rsync bash скрипт "не удалось установить" Почему я получаю 404 Not Found при добавлении этого хранилища в /etc/apt/sources.list? Удаление шаблонов только из 1-го столбца Каковы различия в общей памяти между ранними и современными системами Unix? Отключить летнее время в Debian Linux Git распаковать все файлы из списка Установите переменную окружения автоматически после входа в систему SSH (без доступа root) Как оштрафовать файл в n-out-of-m redundancy (код стирания, например, вид соломона)? Просмотр большого изображения на Linux Как перенаправить вывод при использовании документа здесь Использование ресурсов другого устройства для выполнения программного обеспечения Хранение списка в переменной

Неблокирующая команда bash

Предположим, у меня есть сценарий bash со следующим:

#!/bin/sh gedit rm *.temp 

Когда я выполняю его с помощью sh ./test.sh , всплывает gedit , но часть rm не запускается до тех пор, пока я не gedit .

Я хочу, чтобы скрипт продолжал работать, даже если gedit не закрыт; как gedit не блокирует выполнение bash.

Пример, который я дал, – это всего лишь пример (первый rm не будет работать в реальной ситуации).

    Термин, который вы ищете, называется «фоновая» работа. Когда вы запускаете команду либо в своей оболочке, либо в скрипте, вы можете добавить флаг в конец, чтобы отправить его на задний план и продолжить выполнение новых команд или остальной части скрипта. В большинстве оболочек, включая sh , это символ & .

     #!/bin/sh gedit & rm ./*.temp 

    Таким образом, оболочка не ждет окончания gedit и оба rm и gedit будут запускаться одновременно.

    Термин «блокировка» обычно имеет отношение к потокам ввода / вывода, часто к файлам или устройству. Он также используется на скомпилированных языках в чем-то подобном смыслу, который вы использовали, но в bash и подобных сценариях оболочки терминология (и функция!) Довольно различна.