Како користити тест услове унутар Басх Сцрипта

Команда теста се може користити на Линук командној линији да би упоредила један елемент против другог, али се најчешће користи у БАСХ схелл скриптама као део условних изјава које контролишу логику и проток програма.

Основни пример

Можете пробати ове команде једноставно отварањем прозора терминала .

тест 1-ек 2 && ецхо "да" || ехо "не"

Горња команда може се разврстати на следећи начин:

У суштини, команда се упоређује од 1 до 2 и оне се подударају са ецхо "иес" изјава се извршава која приказује "да" и ако се не подударају са ецхо "но" изводом се извршава која приказује "не".

Упоређивање бројева

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

Примери:

тест 1-ек 2 && ецхо "да" || ехо "не"

(приказује се "не" на екрану јер 1 не одговара 2)

тест 1 -ге 2 && ецхо "да" || ехо "не"

(приказује "не" на екрану јер 1 није већи или једнак 2)

тест 1 -гт 2 && ецхо "да" || ехо "не"

(приказује се "не" на екрану јер 1 није већи од 2)

тест 1 -ле 2 && ецхо "да" || ехо "не"

(приказује "да" на екран јер је 1 мањи или једнак 2)

тест 1 -лт 2 && ецхо "да" || ехо "не"

(приказује "да" на екран јер је 1 мањи или једнак 2)

тест 1 -не 2 && ецхо "да" || ехо "не"

(приказује "да" на екран јер 1 није једнако 2)

Поређење текста

Ако упоређујете елементе који раздвајају низове, можете користити следеће оператере поређења:

Примери:

тест "стринг1" = "стринг2" && ецхо "да" || ехо "не"

(приказује "не" на екрану јер "стринг1" не одговара "стринг2")

тест "стринг1"! = "стринг2" && ецхо "да" || ехо "не"

(приказује "да" на екран јер "стринг1" није једнак "стринг2")

тест -н "стринг1" && ецхо "да" || ехо "не"

(приказује "да" на екран јер "стринг1" има дужину низа већу од нуле)

тест -з "стринг1" && ецхо "да" || ехо "не"

(приказује "не" на екрану јер "стринг1" има дужина низа већа од нуле)

Упоређивање датотека

Ако упоређујете датотеке, можете користити следеће оператере поређења:

Примери:

тест / путање / до / филе1 -н / патх / то / филе2 && ецхо "да"

(Ако је датотека1 новија од датотеке2 онда ће се приказати ријеч "да"),

тест -е / путање / до / филе1 && ецхо "да"

(ако постоји датотека1, приказаће се ријеч "да")

тест -О / патх / то / филе1 && ецхо "да"

(ако поседујете датотеку1, онда се приказује ријеч "да")

Терминологија

Упоређивање вишеструких услова

До сада је све упоређивало једну ствар са другом, али шта ако желите да упоредите два услова.

На пример, ако животиња има 4 ноге и иде "моо" вероватно је крава. Једноставно провера 4 ноге не гарантује да имате краву, али проверавате звук који сигурно ради.

Да бисте тестирали оба стања, употребите следећу изјаву:

тест 4-ек 4 -а "моо" = "моо" && ецхо "то је крава" || ехо "то није крава"

Кључни део овде је -а која се залаже и.

Постоји бољи и најчешће коришћени начин извођења истог теста и то је следеће:

тест 4 -ек 4 && тест "моо" = "моо" && ецхо "то је крава" || ехо "то није крава"

Још један тест који желите да урадите је упоређивање две изјаве и ако је тачно излаз стринг. На пример, ако желите да проверите да ли постоји датотека са именом "филе1.ткт" или постоји датотека под називом "филе1.доц", можете користити следећу наредбу

тест -е филе1.ткт -о -е филе1.доц && ецхо "филе1 екистс" || ецхо "датотека1 не постоји"

Кључни део овде је -о што представља или.

Постоји бољи и најчешће коришћени начин извођења истог теста и то је следеће:

тест -е филе1.ткт || тест -е филе1.доц && ецхо "филе1 екистс" || ецхо "датотека1 не постоји"

Елиминисање кључне речи теста

Заиста не морате користити реч тест да бисте извршили упоређивање. Све што треба да урадите је да приложите изјаву у квадратним заградама како слиједи:

[-е филе1.ткт] && ецхо "филе1 екистс" || ецхо "датотека1 не постоји"

[И] у суштини значи исто као и тест.

Сада знате да можете побољшати упоређивање више услова на следећи начин:

[4 -ек 4] && ["моо" = "моо"] && ецхо "то је крава" || ехо "то није крава"

[-е филе1.ткт] || [-е филе1.доц] && ецхо "филе1 екистс" || ецхо "датотека1 не постоји"

Резиме

Команда теста је кориснија у скриптама зато што можете тестирати вредност једне променљиве у односу на други и контролни проток програма. На стандардној командној линији, можете га користити да бисте тестирали да ли постоји датотека или