У овој теми ћемо разумети како се користи ако изјаве у Басх скриптама да бисмо завршили наше аутоматизоване задатке.
Басх ако су изјаве корисне. Користе се за обављање условних задатака у секвенцијалном току извршавања наредби. Ако нам изјаве обично дозвољавају да доносимо одлуке у нашим Басх скриптама. Они нам помажу да одлучимо да ли да покренемо део кодова на основу услова који можемо да поставимо.
хромирана адресна трака
Основне ако изјаве
Основна иф изјава наређује да ако је одређени услов тачан, онда изврши само дати скуп акција. Ако није тачно, онда не извршавајте те радње. Ако је изјава заснована на следећем формату:
Синтакса
if [ expression ]; then statements fi
Изјава између онда и бити (Ако је уназад) биће извршено само ако је израз (између угластих заграда) тачан.
Белешка:Обратите пажњу на размаке који се користе у првом реду и тачку и зарез на крају првог реда; оба су обавезна за употребу.Ако је условна изјавазавршава сабити.
- За коришћење више услова са АНД оператором:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- За коришћење више услова са ОР оператором:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- За сложене изразе са АНД & ОР операторима, можемо користити следећу синтаксу:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Следи неколико примера који показују употребу иф наредбе:
Пример 1
У овом примеру, узмите кориснички унос било ког броја и проверите да ли је вредност већа од 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Излаз
Ако унесемо број 159, онда ће излаз изгледати овако:
Пример 2
У овом примеру демонстрирамо употребу иф изјава са једноставним сценаријем поређења два низа:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Излаз
листинг јава
Пример 3
У овом примеру демонстрирамо како да упоредимо бројеве користећи иф наредбу:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Излаз
Пример 4
У овом примеру ћемо дефинисати како да користимо оператор АНД да бисмо укључили више услова у израз иф:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Излаз
Пример 5
У овом примеру ћемо дефинисати како да користимо оператор ОР да бисмо укључили више услова у израз иф:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Излаз
Пример 6
У овом примеру ћемо дефинисати како да користимо АНД и ОР да бисмо укључили више услова у израз иф:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Излаз
3д у аутоцаду
Опције за Иф наредбу у Басх скриптама
Ако изјава садржи много опција за обављање одређеног задатка. Ове опције се могу користити за операције са датотекама, операције са стринговима итд. Следе неке најчешће коришћене опције:
Опције (оператери) | Опис |
---|---|
! ИЗРАЖАВАЊЕ | Да бисте проверили да ли је ЕКСПРЕССИОН нетачан. |
-н СТРИНГ | Да бисте проверили да ли је дужина СТРИНГ већа од нуле. |
-з СТРИНГ | Да бисте проверили да ли је дужина СТРИНГ нула (тј. празан је) |
СТРИНГ1 == СТРИНГ2 | Да бисте проверили да ли је СТРИНГ1 једнако СТРИНГ2. |
СТРИНГ1 != СТРИНГ2 | Да бисте проверили да ли СТРИНГ1 није једнако СТРИНГ2. |
ИНТЕГЕР1 -ек ИНТЕГЕР2 | Да бисте проверили да ли је ИНТЕГЕР1 нумерички једнак ИНТЕГЕР2. |
ИНТЕГЕР1 -гт ИНТЕГЕР2 | Да бисте проверили да ли је ИНТЕГЕР1 бројчано већи од ИНТЕГЕР2. |
ИНТЕГЕР1 -лт ИНТЕГЕР2 | Да бисте проверили да ли је ИНТЕГЕР1 нумерички мањи од ИНТЕГЕР2. |
-д ФИЛЕ | Да бисте проверили да ли ФИЛЕ постоји и да ли је директоријум. |
-е ДАТОТЕКА | Да бисте проверили да ли ФИЛЕ постоји. |
-р ДАТОТЕКА | Да бисте проверили да ли ФИЛЕ постоји и да ли је одобрена дозвола за читање. |
-с ФИЛЕ | Да проверите да ли ФИЛЕ постоји и да ли је његова величина већа од нуле (што значи да није празан). |
-в ФИЛЕ | Да бисте проверили да ли ФИЛЕ постоји и да ли је одобрена дозвола за писање. |
к ФИЛЕ | Да бисте проверили да ли ФИЛЕ постоји и да ли је одобрена дозвола за извршавање. |
Нестед Иф
Можете да примените онолико 'иф наредби' колико је потребно унутар ваше басх скрипте. Такође је могуће користити иф наредбу унутар друге 'иф изјаве'. Позната је као Угнежђена изјава Иф.
Пример
У овом примеру ћемо пронаћи „ако је дати број већи од 50 и ако је паран број“ коришћењем угнежђеног иф израза.
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Излаз
Ако унесемо вредност аргумента као 100, онда ће излаз изгледати овако:
Закључак
У овој теми смо разговарали о томе како бисмо могли да користимо условно гранање у секвенцијалном току извршавања наредби са басх иф наредбом.