Команда за изчакване в Linux

Wait Command Linux



изчакайте е вградена команда на Linux, която чака да завърши всеки изпълнен процес. изчакайте команда се използва с определен идентификатор на процес или идентификатор на работа. Когато в черупката се изпълняват множество процеси, текущата обвивка ще знае само идентификатора на процеса на последната команда. Ако командата чакане се изпълни този път, тя ще бъде приложена за последната команда. Ако не е даден идентификатор на процес или идентификатор на работа с команда за изчакване, той ще изчака всички текущи дъщерни процеси да завършат и ще върне състоянието на излизане.

Стойността на състоянието на излизане на командата чакане зависи от командата, посочена от последния посочен операнд. Когато всеки процес приключи необичайно, състоянието на излизане ще бъде по -голямо от 128 и ще бъде различно от стойностите на състоянието на излизане на други команди. изчакайте команда излиза със стойност 0, когато извиква без операнди и всички идентификатори на процеси са известни от текущата обвивка са прекратени. Ако командата чакане открие някаква грешка, тя връща всякаква стойност от 1 до 126. Ако последният идентификационен номер на процеса е неизвестен, командата чакане излиза със стойност 127. Как можете да използвате командата чакане в Linux е показано в този урок.







Пример-1: Използване на команда за изчакване за множество процеси

След изпълнение на следния скрипт, два процеса ще се изпълняват във фонов режим и идентификационният номер на процеса на първата команда echo се съхранява в променливата $ process_id. Когато командата чакане се изпълни с $ process_id, следващата команда ще изчака изпълнението на задачата на първата команда echo. Втората команда за изчакване се използва с „ $! “И това показва идентификатора на процеса на последния изпълнен процес. ‘ $? “Се използва за четене на стойността на състоянието на командата чакане.



#!/bin/bash
изхвърлен 'testing wait command1' &
process_id=$!
изхвърлен 'testing wait command2' &
изчакайте $ process_id
изхвърленРабота1излезе със статус$?
изчакайте $!
изхвърленРабота2излезе със статус$?

Изход:



$башwait1.sh





Пример-2: Тествайте командата чакане след използване на командата kill

В следния скрипт командата чакане се изпълнява след прекратяване на процеса. командата sleep се изпълнява като фонов процес и команда kill се изпълнява, за да прекрати текущия процес. След това командата чакане се изпълнява с идентификатора на процеса на прекратения процес. Изходът ще покаже идентификатора на процеса на прекратения процес.

#!/bin/bash
изхвърлен „Тестваща команда за изчакване“
сън двайсет &
пид=$!
убивам $ pid
изчакайте $ pid
изхвърлен $ pidбеше прекратено.

Изход:



$башwait2.sh

Пример-3: Проверете стойността на състоянието на излизане

В следния скрипт функцията check () се извиква с две стойности на аргумента. В началото на урока се обсъжда, че ако командата чакане се изпълни успешно, изходната стойност ще бъде 0 и ако командата чакане открие някаква грешка, тя ще върне всяка стойност между 1 и 126. След стартиране на скрипта, ако предадете 0 като втори аргумент стойност след това командата чакане се прекратява успешно и ако предадете някаква стойност повече от нула, тя се прекратява неуспешно.

#!/bin/bash
функцияпроверка()
{
изхвърлен „Спете за 1 секунда“
сън $ 1
изход $ 2
}
проверка$ 1 $ 2 &
б=$!
изхвърлен „Проверка на състоянието“
изчакайте $ b && изхвърленДобре|| изхвърленНЕ Е ДОБРЕ

Изход:

$башwait3.sh3 0
$башwait3.sh3 5

Надявам се, че този урок ще ви помогне да научите правилно командата use wait. В Linux има друга команда, наречена сън да изчакате определен брой пъти, но има някои разлики между тези команди. Ако се интересувате да знаете за команда за заспиване тогава можете да посетите тази връзка.