Вредност статуса излаза наредбе за чекање зависи од наредбе назначене последњим наведеним операндом. Када се било који процес абнормално заврши, тада ће статус излаза бити већи од 128 и разликоват ће се од вриједности статуса излаза других наредби. чекати наредба излази са вриједношћу 0 када позива без операнда и ако су тренутни љуски завршили све ИД-ове процеса. Ако наредба ваит открије било какву грешку, тада враћа било коју вредност од 1 до 126. Ако је последњи ИД процеса непознат, тада наредба за чекање излази са вриједношћу 127. Како можете користити наредбу ваит у Линуку приказано је у овом упутству.
Пример-1: Коришћење наредбе чека за више процеса
Након извршавања следеће скрипте, два процеса ће се покретати у позадини, а ИД процеса прве команде ецхо чува се у променљивој $ процесс_ид. Када се наредба ваит изврши помоћу $ процесс_ид, следећа наредба ће сачекати довршавање задатка прве команде ецхо. Друга наредба чекања користи се са '$!'и ово означава ИД процеса последњег покренутог процеса. '$?'користи се за читање вредности статуса наредбе за чекање.
#!/ бин / басхецхо "тестирање наредбе за чекање1" &
процесс_ид = $!
ецхо "тестирање наредбе за чекање2" &
сачекајте $ процесс_ид
ецхо Посао 1 је изашао са статусом $?
чекај $!
ецхо Посао 2 је изашао са статусом $?
Излаз:
$ басх сачекај1.сх
Пример-2: Тестирајте наредбу чекања након употребе наредбе килл
У следећој скрипти наредба чека се извршава након завршетка процеса. наредба за спавање се изводи као позадински процес, а наредба килл се извршава за прекид текућег процеса. Након тога се извршава наредба чекања са ИД-ом процеса завршеног процеса. Излаз ће приказати ИД процеса завршеног процеса.
#!/ бин / басхецхо "Тестирање наредбе за чекање"
спавање 20 &
пид = $!
убити $ пид
чекај $ пид
ецхо $ пид је прекинут.
Излаз:
$ басх сачекај2.сх
Пример-3: Проверите вредност статуса излаза
У следећој скрипти, функција проверавати() позива се са две вредности аргумента. На почетку водича расправља се о томе да ће, ако је наредба ваит успешно изведена, излазна вредност бити 0, а ако наредба ваит открије било какву грешку, тада ће вратити било коју вредност између 1 и 126. Након покретања скрипте, ако као другу вредност аргумента пренесете 0, тада се наредба ваит успешно завршава, а ако пренесете било коју вредност већу од нуле, неуспешно се завршава.
#!/ бин / басхпровера функције ()
ехо „Спавање 1 секунду“
спавати 1 $
излаз $ 2
чек $ 1 $ 2 &
б = $!
ецхо "Провера статуса"
сачекајте $ б && ецхо ОК || ехо НОТ ОК
Излаз:
$ басх сачекај3.сх 3 0$ басх сачекај3.сх 3 5
Надам се, ово упутство ће вам помоћи да правилно научите употребу наредбе за чекање. У Линуку постоји још једна наредба, која се зове спавати да сачека одређено време, али постоје неке разлике између ових наредби. Ако сте заинтересовани за команду спавања, можете посетити овај линк.