Стойността на състоянието на изход на командата за изчакване зависи от командата, посочена от последния посочен операнд. Когато някой процес прекрати необичайно, тогава състоянието на излизане ще бъде по-голямо от 128 и ще се различава от стойностите на състоянието на изход на други команди. изчакайте команда излиза със стойността 0, когато извиква без операнди и всички идентификатори на процеса са известни от текущата обвивка са прекратени. Ако командата за изчакване открие някаква грешка, тя връща всяка стойност от 1 до 126. Ако последният идентификатор на процеса е неизвестен, командата за изчакване излиза със стойност 127. Как можете да използвате командата за изчакване в Linux е показано в този урок.
Пример-1: Използване на команда за изчакване за множество процеси
След изпълнението на следния скрипт, два процеса ще се изпълняват във фонов режим и идентификаторът на процеса на първата команда echo се съхранява в променливата $ process_id. Когато командата за изчакване се изпълни с $ process_id, следващата команда ще изчака изпълнението на задачата на първата ехо команда. Втората команда за изчакване се използва с '$!'и това показва идентификатора на процеса на последния стартиращ процес. '$?'се използва за четене на стойността на състоянието на командата за изчакване.
#!/ bin / bashехо "тестване команда за изчакване1" &
process_id = $!
ехо "тестване команда за изчакване2" &
изчакайте $ process_id
echo Задача 1 излезе със статус $?
изчакайте $!
echo Job 2 излезе със статус $?
Изход:
$ bash wait1.ш
Пример-2: Тествайте командата за изчакване след използване на команда за убиване
В следващия скрипт командата за изчакване се изпълнява след прекратяване на процеса. Командата за заспиване се изпълнява като фонов процес, а командата kill се изпълнява, за да прекрати текущия процес. След тази команда за изчакване се изпълнява с идентификатора на процеса на прекратения процес. Резултатът ще покаже идентификатора на процеса на прекратения процес.
#!/ bin / bashехо "Тестване на команда за изчакване"
спи 20 &
pid = $!
убий $ pid
изчакайте $ pid
echo $ pid беше прекратен.
Изход:
$ bash wait2.ш
Пример-3: Проверете стойността на състоянието на изхода
В следващия скрипт функцията проверете () се извиква от две стойности на аргумента. В началото на урока се обсъжда, че ако командата за изчакване бъде изпълнена успешно, изходната стойност ще бъде 0 и ако командата за изчакване открие грешка, тя ще върне всяка стойност между 1 и 126. След като стартирате скрипта, ако предадете 0 като втора стойност на аргумента, командата за изчакване се прекратява успешно и ако предадете стойност, по-голяма от нула, тя завършва неуспешно.
#!/ bin / bashпроверка на функцията ()
ехо "Сън за $ 1 секунди"
сън $ 1
излезте $ 2
проверете $ 1 $ 2 &
b = $!
echo "Проверка на състоянието"
изчакайте $ b && echo OK || ехо НЕ е ОК
Изход:
$ bash wait3.sh 3 0$ bash wait3.sh 3 5
Надявам се, този урок ще ви помогне да научите правилно командата use use. Има още една команда в Linux, наречена сън да изчакате определен брой пъти, но има някои разлики между тези команди. Ако се интересувате от командата за заспиване, можете да посетите тази връзка.