Како паузирати Басх скрипту помоћу Линук команде за спавање

Команда спавања чини да ваш Линук рачунар не ради ништа. Можда је контраинтуитивно, али период неактивности је понекад управо оно што је потребно. Овај чланак вам показује како да ефикасно користите ову Басх команду љуске.

Коришћење спавања је једноставно. У командну линију откуцајте спавање, размак, број, а затим притисните Ентер.

sleep 5

Курсор ће нестати на пет секунди, а затим ће се вратити. Шта се десило? Коришћење спавања на командној линији наводи Басх да обустави обраду на време које сте навели. У нашем примеру ово је било пет секунди.

Можемо да пренесемо трајање спавања у данима, сатима и минутима, као иу секундама. Да бисте то урадили, укључите суфикс од д, х, м или с са трајањем. Да бисте изазвали паузу спавања на један дан, четири сата, седам минута и пет секунди, користите команду попут ове:

sleep 1d 4h 7m 5s

Суфикс с (за секунде) није обавезан. Без суфикса, спавање ће третирати свако трајање као секунде. Претпоставимо да желите да имате паузу за спавање на пет минута и двадесет секунди. Један исправан формат ове команде је:

sleep 5m 20

Ако заборавите да наведете суфикс м за трајање минута, наложићете спавању да паузира пет секунди, а затим поново двадесет секунди. Дакле, спавање ће паузирати 25 секунди.

Многе команде захтевају од вас да наведете параметре одређеним редоследом, али спавање је веома опрост. Можете их пружити било којим редоследом и спавање ће имати смисла из њих. Такође можете да наведете број са покретним зарезом као параметар. На пример, 0,5 х је валидан начин да назначите да желите да спавате паузирате на пола сата.

  7 разлога зашто би требало да пређете на Линук

Све следеће (све ексцентричније) команде говоре спавању да се паузира 10 секунди.

sleep 10
sleep 5 5s
Sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

Коришћење режима спавања за паузу пре команде

Команда за спавање се може користити за паузу пре извршења команде. Ова команда би паузирала 15 секунди, а затим би дала бип.

sleep 15 && echo -en ' 07'

Коришћење режима спавања за паузу између две команде

Можете користити спавање да направите паузу између две команде. Ова команда би навела датотеке у вашем директоријуму докумената, паузирала пет секунди, а затим променила тренутни радни директоријум у ваш кућни директоријум:

ls -R ~/Documents && sleep 5 && cd ~

Коришћење стања спавања за паузирање извршавања скрипте

Можете да користите команду спавања у скриптама љуске да бисте паузирали извршавање скрипте на тачно одређено време. Обично бисте то урадили да бисте неком процесу дали довољно времена да се заврши пре него што скрипта настави са обрадом. Такође можете да га користите да ограничите брзину за захтеве које скрипта поставља другом ресурсу.

Да бисмо тачно то демонстрирали, ево скрипте која позива Гоогле веб услугу користећи цурл. Када поставите упит за веб услугу са ИСБН број књиге, одговара са депонијом ЈСОН података у вези са том књигом. Те податке можемо рашчланити тако што ћемо их проћи кроз јк услужни програм да бисмо добили наслов књиге. Тако да скрипта не оптерећује веб услугу, она спава једну секунду између веб захтева.

  Како инсталирати Поп ГТК тему на Линук-у

Направите датотеку која садржи следећи текст и сачувајте је као цхецк_боок.сх.

#!/bin/bash

for book in `cat $1`
do
 echo $book":"
 curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | .[] | .volumeInfo.title'
 echo ""
 sleep 1
done

echo "All done."

Откуцајте следећу команду да бисте подесили дозволе за извршавање и учинили скрипту извршном.

chmod +x check_book.sh

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

sudo apt-get install curl
sudo apt-get install jq

Направите текстуалну датотеку која садржи следеће бројеве и сачувајте је као боокс.ткт.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

Покрените скрипту цхецк_боок.сх и унесите датотеку боокс.ткт као параметар.

./check_book.sh books.txt

Захтеви се упућују Гоогле веб услузи у интервалима од једне секунде. Наслов књиге ће се појавити убрзо након што се постави упит за сваки ИСБН број.

То је све што се може спавати. Унутрашњи рад скрипте цхецк_боок.сх је ван оквира овог чланка. Скрипта је изабрана искључиво да илуструје ваљану употребу команде спавања. Ако желите да прочитате више о две главне компоненте скрипте, погледајте цурл страница пројекта и јк он-лине приручник.