Линук наредбе

Сачекајте наредбу у Линуку

Сачекајте наредбу у Линуку
чекати је уграђена команда Линука која чека довршење било ког покренутог процеса. чекати наредба се користи са одређеним ИД-ом процеса или ИД-ом посла. Када се у љусци изводи више процеса, тренутна љуска знаће само ИД процеса последње наредбе. Ако се овог пута изврши наредба ваит, тада ће се примијенити на задњу наредбу. Ако ниједан ИД процеса или ИД посла није дат са наредбом чека, тада ће причекати да се сви тренутни подређени процеси заврше и врати статус изласка.

Вредност статуса излаза наредбе за чекање зависи од наредбе назначене последњим наведеним операндом. Када се било који процес абнормално заврши, тада ће статус излаза бити већи од 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

Надам се, ово упутство ће вам помоћи да правилно научите употребу наредбе за чекање. У Линуку постоји још једна наредба, која се зове спавати да сачека одређено време, али постоје неке разлике између ових наредби. Ако сте заинтересовани за команду спавања, можете посетити овај линк.

Најбољи Линук Дистрос за игре у 2021
Линук оперативни систем далеко је превалио свој изворни, једноставни изглед заснован на серверима. Овај ОС се изузетно побољшао последњих година и сад...
Како снимити и стримовати своју играћу сесију на Линук-у
У прошлости се играње игара сматрало само хобијем, али с временом је играчка индустрија забележила огроман раст у погледу технологије и броја играча. ...
Најбоље игре за ручно праћење
Оцулус Куест је недавно представио сјајну идеју ручног праћења без контролера. Са све већим бројем игара и активности које извршавају подршку формално...