Синтаксис на командата за заспиване:
номер на съня [суфикс]
Като стойност на времето можете да използвате произволно цяло число или дробно число. Суфиксната част не е задължителна за тази команда. Ако пропуснете суфикса, стойността на времето по подразбиране се изчислява като секунди. Можеш да използваш с, m, h и д като суфикс стойност. Следващите примери показват използването на команда за заспиване с различни суфикси.
Пример-1: команда за заспиване без наставка
В следващия скрипт се използва команда за заспиване с числова стойност 2 само и не се използва суфикс. Така че, ако стартирате скрипта, тогава низът „Задачата изпълнена”Ще се отпечата след изчакване за 2 секунди.
#!/ bin / bashехо "Изчаква се 2 секунди ..."
сън 2
echo "Задачата е изпълнена"
Стартирайте bash файла с време команда за показване на трите типа стойности на времето за стартиране на скрипта. Резултатът показва времето, използвано от система, потребител и реално време.
$ време баш сън.шИзход:
Пример-2: команда за заспиване с минутен суфикс
В следния скрипт, 'м'се използва като суфикс с команда за заспиване. Тук стойността на времето е 0.05 минути. След изчакване 0.05 минути, “Задачата изпълнена”Съобщението ще бъде отпечатано.
#!/ bin / bashecho "В очакване на 0.05 минути ... "
сън 0.05м
echo "Задачата е изпълнена"
Стартирайте скрипта с време команда като първия пример.
$ време баш сън2.шИзход:
Пример-3: команда за заспиване с суфикс за час
В следния скрипт, 'з'се използва като суфикс с команда за заспиване. Тук стойността на времето е 0.003 часа. След изчакване 0.003 часа “Задачата изпълнена”Трябва да се отпечатва на екрана, но изисква повече пъти в действителност кога "ч" се използва суфикс.
#!/ bin / bashecho "В очакване на 0.003 часа ... "
сън 0.003ч
echo "Задачата е изпълнена"
$ време баш сън3.ш
Изход:
Пример-4: команда за заспиване с цикъл
Можете да използвате командата за заспиване за различни цели. В следващия пример командата за заспиване се използва с цикъл while. Първоначално стойността на променливата н е зададено на 1 и стойността на н ще се увеличи с 1 за 4 пъти във всеки 2 интервал от секунди. И така, кога ще стартирате скрипта, всеки изход ще се появи след изчакване 2 секунди.
#!/ bin / bashn = 1
докато [$ n -lt 5]
направете
echo "Стойността на n сега е $ n"
сън 2s
ехо ""
((n = $ n + 1))
Свършен
Изход:
Пример-5: команда за заспиване в терминала с други команди
Да предположим, че искате да изпълните няколко команди и да зададете фиксиран интервал от време между изходите на две команди, след което можете да използвате команда за заспиване, за да направите тази задача. В този пример командата ls и pwd са с сън команда. След изпълнение на командата, ls команда ще покаже списъка с директории на текущата директория и ще покаже текущия път на работната директория след изчакване за 2 секунди.
$ ls && сън 2 && pwdИзход:
Пример 6: Използване на команда за заспиване от командния ред
Командата за заспиване се използва между две ехо команди в следващия пример. След изпълнението на командата ще се покажат три времеви стойности.
$ време (ехо "Старт"; сън 5; ехо "Край")Изход:
командата за заспиване е полезна команда, когато трябва да напишете bash скрипт с множество команди или задачи, изходът на всяка команда може да изисква голямо количество време, а друга команда трябва да изчака изпълнението на задачата на предишната команда. Например искате да изтеглите последователни файлове и следващото изтегляне не може да започне преди завършване на предишното изтегляне. В този случай е по-добре команда за заспиване преди всяко изтегляне да изчакате фиксираното време.