Есть ли способ обеспечить последовательные задачи на терминале во время выполнения задачи (без использования файла)?

Часть здесь:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
fi

должна выглядеть так:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
fi
14
задан 8 May 2018 в 09:12

8 ответов

Я видел этот метод здесь: https://superuser.com/questions/334272/how-to-run-a-command-after-an-already-running-existing-one-finishes

, где вы сначала делаете Ctrl + z, чтобы остановить (приостановить) запущенный, тогда вы запустите пропущенную команду следующим образом: fg && ./missed_cmd.sh, и она будет запущена, как только fg закончится.

Команда fg (команда переднего плана) приведет к приостановленному заданию в сети, а функция && гарантирует, что пропущенная команда будет запущена только в том случае, если первая команда выполнена успешно.

2
ответ дан 17 July 2018 в 14:55

Да, вы можете:

Приостановить текущее задание с помощью символа приостановки, нажав Ctrl + Z. Введите fg или %, добавьте то, что вы хотите к списку, и выполните его, например: fg ; systemctl suspend # or % ; systemctl suspend Поскольку fg возвращает возвращаемое значение задания, которое оно возобновило, перечислите такие операторы, как && и || как ожидалось: fg && echo "Finished successfully!" # or % && echo "Finished successfully!"

man bash / JOB CONTROL говорит о символе приостановки:

Ввод символа приостановки (обычно ^Z, Control-Z), пока процесс запуск останавливает процесс и возвращает управление на bash. (...) Затем пользователь может управлять состоянием этого задания, используя команду bg, чтобы продолжить его в фоновом режиме, fg, чтобы продолжить его на переднем плане, или команду kill, чтобы убить его. A ^Z вступает в силу немедленно и имеет дополнительный побочный эффект, вызывающий отключение ожидающего вывода и typeahead.

fg объясняется в man bash / JOB CONTROL :

Ввод символа приостановки (обычно ^Z, Control-Z ) во время запуска процесса приводит к тому, что процесс останавливается и возвращает управление на bash. (...) Затем пользователь может управлять состоянием этого задания, используя команду bg, чтобы продолжить его в фоновом режиме, fg, чтобы продолжить его на переднем плане, или команду kill, чтобы убить его. A ^Z вступает в силу немедленно и имеет дополнительный побочный эффект для отбрасывания отложенного вывода и typeahead.

fg [jobspec] Возобновить задание на переднем плане и сделать его текущим работа. Если jobspec нет, используется понятие оболочки текущего задания. Возвращаемое значение - это значение команды, помещенной на передний план, или сбой, если он запущен, когда управление заданиями отключено, или если при запуске с включенным контролем заданий, если jobspec не указывает допустимое задание или спецификация заданий задает задание, которое было запущено без управления заданиями .

TLDP Advanced Bash-Scripting Guide Глава 15.1. Команды управления заданиями Руководство DigitalOcean о том, как использовать контроль работы Bash. Статья «Prozesssteuerung» в Wibuntuusers Wiki (немецкий)
19
ответ дан 17 July 2018 в 14:55

Я видел этот метод здесь: https://superuser.com/questions/334272/how-to-run-a-command-after-an-already-running-existing-one-finishes

, где вы сначала делаете Ctrl + z, чтобы остановить (приостановить) запущенный, тогда вы запустите пропущенную команду следующим образом: fg && ./missed_cmd.sh, и она будет запущена, как только fg закончится.

Команда fg (команда переднего плана) приведет к приостановленному заданию в сети, а функция && гарантирует, что пропущенная команда будет запущена только в том случае, если первая команда выполнена успешно.

2
ответ дан 20 July 2018 в 14:57

Да, вы можете:

Приостановить текущее задание с помощью символа приостановки, нажав Ctrl + Z. Введите fg или %, добавьте то, что вы хотите к списку, и выполните его, например: fg ; systemctl suspend # or % ; systemctl suspend Поскольку fg возвращает возвращаемое значение задания, которое оно возобновило, перечислите такие операторы, как && и || как ожидалось: fg && echo "Finished successfully!" # or % && echo "Finished successfully!"

man bash / JOB CONTROL говорит о символе приостановки:

Ввод символа приостановки (обычно ^Z, Control-Z), пока процесс запуск останавливает процесс и возвращает управление на bash. (...) Затем пользователь может управлять состоянием этого задания, используя команду bg, чтобы продолжить его в фоновом режиме, fg, чтобы продолжить его на переднем плане, или команду kill, чтобы убить его. A ^Z вступает в силу немедленно и имеет дополнительный побочный эффект, вызывающий отключение ожидающего вывода и typeahead.

fg объясняется в man bash / JOB CONTROL :

Ввод символа приостановки (обычно ^Z, Control-Z ) во время запуска процесса приводит к тому, что процесс останавливается и возвращает управление на bash. (...) Затем пользователь может управлять состоянием этого задания, используя команду bg, чтобы продолжить его в фоновом режиме, fg, чтобы продолжить его на переднем плане, или команду kill, чтобы убить его. A ^Z вступает в силу немедленно и имеет дополнительный побочный эффект для отбрасывания отложенного вывода и typeahead.

fg [jobspec] Возобновить задание на переднем плане и сделать его текущим работа. Если jobspec нет, используется понятие оболочки текущего задания. Возвращаемое значение - это значение команды, помещенной на передний план, или сбой, если он запущен, когда управление заданиями отключено, или если при запуске с включенным контролем заданий, если jobspec не указывает допустимое задание или спецификация заданий задает задание, которое было запущено без управления заданиями .

TLDP Advanced Bash-Scripting Guide Глава 15.1. Команды управления заданиями Руководство DigitalOcean о том, как использовать контроль работы Bash. Статья «Prozesssteuerung» в Wibuntuusers Wiki (немецкий)
19
ответ дан 20 July 2018 в 14:57
  • 1
    +1, но это позор, это не работает, когда вы забыли t3 в t1; t2; t3 или t1 && t2 && t3. – JoL 8 May 2018 в 20:19
  • 2
    @JoL Правда, что - ^Z^Z и %-;%+;t3 достаточно хорош в некоторых случаях, но это далеко не реальное решение проблемы. – dessert 8 May 2018 в 23:53

Я видел этот метод здесь: https://superuser.com/questions/334272/how-to-run-a-command-after-an-already-running-existing-one-finishes

, где вы сначала делаете Ctrl + z, чтобы остановить (приостановить) запущенный, тогда вы запустите пропущенную команду следующим образом: fg && ./missed_cmd.sh, и она будет запущена, как только fg закончится.

Команда fg (команда переднего плана) приведет к приостановленному заданию в сети, а функция && гарантирует, что пропущенная команда будет запущена только в том случае, если первая команда выполнена успешно.

2
ответ дан 20 July 2018 в 15:22

Да, вы можете:

Приостановить текущее задание с помощью символа приостановки, нажав Ctrl + Z. Введите fg или %, добавьте то, что вы хотите к списку, и выполните его, например: fg ; systemctl suspend # or % ; systemctl suspend Поскольку fg возвращает возвращаемое значение задания, которое оно возобновило, перечислите такие операторы, как && и || как ожидалось: fg && echo "Finished successfully!" # or % && echo "Finished successfully!"

man bash / JOB CONTROL говорит о символе приостановки:

Ввод символа приостановки (обычно ^Z, Control-Z), пока процесс запуск останавливает процесс и возвращает управление на bash. (...) Затем пользователь может управлять состоянием этого задания, используя команду bg, чтобы продолжить его в фоновом режиме, fg, чтобы продолжить его на переднем плане, или команду kill, чтобы убить его. A ^Z вступает в силу немедленно и имеет дополнительный побочный эффект, вызывающий отключение ожидающего вывода и typeahead.

fg объясняется в man bash / JOB CONTROL :

Ввод символа приостановки (обычно ^Z, Control-Z ) во время запуска процесса приводит к тому, что процесс останавливается и возвращает управление на bash. (...) Затем пользователь может управлять состоянием этого задания, используя команду bg, чтобы продолжить его в фоновом режиме, fg, чтобы продолжить его на переднем плане, или команду kill, чтобы убить его. A ^Z вступает в силу немедленно и имеет дополнительный побочный эффект для отбрасывания отложенного вывода и typeahead.

fg [jobspec] Возобновить задание на переднем плане и сделать его текущим работа. Если jobspec нет, используется понятие оболочки текущего задания. Возвращаемое значение - это значение команды, помещенной на передний план, или сбой, если он запущен, когда управление заданиями отключено, или если при запуске с включенным контролем заданий, если jobspec не указывает допустимое задание или спецификация заданий задает задание, которое было запущено без управления заданиями .

TLDP Advanced Bash-Scripting Guide Глава 15.1. Команды управления заданиями Руководство DigitalOcean о том, как использовать контроль работы Bash. Статья «Prozesssteuerung» в Wibuntuusers Wiki (немецкий)
19
ответ дан 20 July 2018 в 15:22
  • 1
    +1, но это позор, это не работает, когда вы забыли t3 в t1; t2; t3 или t1 && t2 && t3. – JoL 8 May 2018 в 20:19
  • 2
    @JoL Правда, что - ^Z^Z и %-;%+;t3 достаточно хорош в некоторых случаях, но это далеко не реальное решение проблемы. – dessert 8 May 2018 в 23:53

Я видел этот метод здесь: https://superuser.com/questions/334272/how-to-run-a-command-after-an-already-running-existing-one-finishes

, где вы сначала делаете Ctrl + z, чтобы остановить (приостановить) запущенный, тогда вы запустите пропущенную команду следующим образом: fg && ./missed_cmd.sh, и она будет запущена, как только fg закончится.

Команда fg (команда переднего плана) приведет к приостановленному заданию в сети, а функция && гарантирует, что пропущенная команда будет запущена только в том случае, если первая команда выполнена успешно.

2
ответ дан 23 July 2018 в 15:53

Да, вы можете:

Приостановить текущее задание с помощью символа приостановки, нажав Ctrl + Z. Введите fg или %, добавьте то, что вы хотите к списку, и выполните его, например: fg ; systemctl suspend # or % ; systemctl suspend Поскольку fg возвращает возвращаемое значение задания, которое оно возобновило, перечислите такие операторы, как && и || как ожидалось: fg && echo "Finished successfully!" # or % && echo "Finished successfully!"

man bash / JOB CONTROL говорит о символе приостановки:

Ввод символа приостановки (обычно ^Z, Control-Z), пока процесс запуск останавливает процесс и возвращает управление на bash. (...) Затем пользователь может управлять состоянием этого задания, используя команду bg, чтобы продолжить его в фоновом режиме, fg, чтобы продолжить его на переднем плане, или команду kill, чтобы убить его. A ^Z вступает в силу немедленно и имеет дополнительный побочный эффект, вызывающий отключение ожидающего вывода и typeahead.

fg объясняется в man bash / JOB CONTROL :

Ввод символа приостановки (обычно ^Z, Control-Z ) во время запуска процесса приводит к тому, что процесс останавливается и возвращает управление на bash. (...) Затем пользователь может управлять состоянием этого задания, используя команду bg, чтобы продолжить его в фоновом режиме, fg, чтобы продолжить его на переднем плане, или команду kill, чтобы убить его. A ^Z вступает в силу немедленно и имеет дополнительный побочный эффект для отбрасывания отложенного вывода и typeahead.

fg [jobspec] Возобновить задание на переднем плане и сделать его текущим работа. Если jobspec нет, используется понятие оболочки текущего задания. Возвращаемое значение - это значение команды, помещенной на передний план, или сбой, если он запущен, когда управление заданиями отключено, или если при запуске с включенным контролем заданий, если jobspec не указывает допустимое задание или спецификация заданий задает задание, которое было запущено без управления заданиями .

TLDP Advanced Bash-Scripting Guide Глава 15.1. Команды управления заданиями Руководство DigitalOcean о том, как использовать контроль работы Bash. Статья «Prozesssteuerung» в Wibuntuusers Wiki (немецкий)
19
ответ дан 23 July 2018 в 15:53
  • 1
    +1, но это позор, это не работает, когда вы забыли t3 в t1; t2; t3 или t1 && t2 && t3. – JoL 8 May 2018 в 20:19
  • 2
    @JoL Правда, что - ^Z^Z и %-;%+;t3 достаточно хорош в некоторых случаях, но это далеко не реальное решение проблемы. – dessert 8 May 2018 в 23:53

Другие вопросы по тегам:

Похожие вопросы: