Це відомо як job controlпід Unix. &Інформує шкаралупу поставити команду в фоновому режимі. Це означає, що він продовжує виконувати sys-snap.shкоманду, але повертає вас до вашої оболонки, щоб ви могли продовжувати виконувати паралельні команди.
Ви можете побачити список завдань, які зараз виконуються з jobsкомандою. Ви можете повернутися до команди (вивести на передній план) за допомогою fgкоманди. Що тягне команду назад в стан , в якому ви не бачите запрошення , і ви повинні випустити Ctrl- Cщоб убити процес. Однак ви можете призупинити (призупинити) цей процес, видавши Ctrl- Z. Це призупинить sys-snap.shі поверне вас до вашого підказки. Потім ви можете створити його фоном (як би ви його видали з командою &) bg, і він відновиться з запущеного стану Ctrl- Zпоставив його.
Зауважте, що ви можете мати кілька завдань одночасно (як показано jobs):
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
Ви можете фоновим і переднім планом використовувати їх номер роботи, %1буде sys-snap.shі %2буде another-script.sh. Якщо ви використовуєте fgабо bgбез аргументів, він буде діяти команду на завдання, позначене +у jobsвихідному тексті.
fg %1
поставить sys-snap.shназад на перший план, в той час залишаючи another-script.shна задньому плані.
Ви можете оформити Ctrl- Cпослідовність для виконання завдань , не маючи на передній план їх з killкомандою, kill %1буде посилати еквівалент Ctrl- Cдо sys-snap.sh.
Якщо ви використовуєте bash shell, у man bashкоманді є детальний розділ під розділом «JOB CONTROL», який детальніше описується.
Що стосується імені sys-snap.sh, під unix назви файлів є довільними (за кількома винятками, як динамічні файли завантажувача). Для них немає вимоги мати специфічні розширення файлів, щоб змусити їх працювати як скрипт оболонки, викликати інші команди, такі як perlі phpт. Д. Зазвичай він використовується для забезпечення ясності, що в цьому випадку це .shсценарій оболонки за допомогою оболонки Борна /bin/sh.
Функціональною частиною sys-snap.sh(коли ви дивитесь на його вміст з чимось на зразок lessкоманди) є Шебанг . На першому рядку ви, ймовірно, знайдете одне з:
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
або подібне. В основному, команда після #!(наприклад, /bin/sh) запускається, і вміст решти файлу сценарію подається до нього рядком. Зауважте, що файл також має бути встановлений виконуваним файлом, chmodщоб можна було запустити його як команду. Якщо дозволи не були встановлені, це shebangне має ефекту, оскільки ви або отримаєте помилку:
bash: sys-snap.sh: command not found
або якби ви запустили його явним шляхом ./sys-snap.sh( .мається на увазі поточний робочий каталог), ви отримаєте:
bash: ./sys-snap.sh: Permission denied
Інша альтернатива - залишити його без дозволів на виконання та явно попросити / bin / sh запустити його:
/bin/sh sys-snap.sh &
&&відрізняється від одиничної амперсанд&?