Ինչպես օգտվել փորձարկման պայմաններից Բաշ սցենարով

Փորձարկման հրամանը կարող է օգտագործվել Linux հրամանի տողում, մեկ տարրը համեմատել մյուսի հետ, սակայն այն ավելի հաճախ օգտագործվում է BASH shell սցենարներում, որպես պայմանական հայտարարությունների մի մաս, որոնք վերահսկում են տրամաբանությունը եւ ծրագրային հոսքը:

Հիմնական օրինակ

Դուք կարող եք փորձել այս հրամանները պարզապես տերմինալային պատուհան բացելով :

test 1 -eq 2 && echo «այո» || echo "ոչ"

Վերոհիշյալ հրամանը կարող է կոտրվել հետեւյալ կերպ.

Ըստ էության, հրամանը համեմատում է 1-ին եւ համապատասխանում է «այո» արձանագրությունին, որը կատարվում է «այո» -ում, եւ եթե դրանք չեն համապատասխանում արձագանքը, «ոչ» հայտարարություն է կատարվում, որը «ոչ» է:

Համեմատելով համարները

Եթե ​​համեմատում եք թվեր վերլուծող տարրերը, կարող եք օգտագործել հետեւյալ համեմատական ​​օպերատորները.

Օրինակներ `

test 1 -eq 2 && echo «այո» || echo "ոչ"

(ցուցադրվում է «ոչ» էկրանի համար, քանի որ 1 չի հավասար է 2)

test 1 -ge 2 && echo «այո» || echo "ոչ"

(ցուցադրվում է «ոչ» էկրանի համար, քանի որ 1-ը մեծ չէ կամ հավասար է 2-ին)

test 1 -gt 2 && echo «այո» || echo "ոչ"

(ցուցադրվում է «ոչ» էկրանի համար, քանի որ 1-ը չի գերազանցում 2-ը)

test 1 -le 2 && echo «այո» || echo "ոչ"

(ցուցադրվում է «այո» էկրանին, քանի որ 1-ը պակաս կամ հավասար է 2-ին)

test 1 -lt 2 && echo «այո» || echo "ոչ"

(ցուցադրվում է «այո» էկրանին, քանի որ 1-ը պակաս կամ հավասար է 2-ին)

test 1 -ne 2 && echo «այո» || echo "ոչ"

(ցուցադրվում է «այո» էկրանին, քանի որ 1 չի հավասար 2)

Համեմատելով տեքստը

Եթե ​​համեմատում եք տողերի վերլուծման տարրերը, կարող եք օգտագործել հետեւյալ համեմատական ​​օպերատորները.

Օրինակներ `

test "string1" = "string2" && echo "այո" || echo "ոչ"

(ցուցադրվում է «ոչ» էկրանի համար, քանի որ «string1» հավասար չէ «string2»)

test "string1"! = "string2" && echo "այո" || echo "ոչ"

(ցուցադրվում է «այո» էկրանին, քանի որ «string1» հավասար չէ «string2»)

test -n "string1" && echo "այո" || echo "ոչ"

(ցուցադրվում է «այո» էկրանի համար, քանի որ «string1» ունի լարային երկարությունը, որը զրոյից մեծ է)

test -z "string1" && echo "այո" || echo "ոչ"

(ցուցադրվում է «ոչ» էկրանի համար, քանի որ «string1» ունի լարային երկարությունը, որը զրոյից մեծ է)

Համեմատելով Ֆայլեր

Եթե ​​համեմատում եք ֆայլերը, կարող եք օգտագործել հետեւյալ համեմատական ​​օպերատորները.

Օրինակներ `

test / path / to / file1 -n / path / to / file2 && echo «այո»

(Եթե ֆայլը1 ֆայլից նոր է, ապա «այո» բառը կցուցադրվի)

test -e / path / to / file1 && echo «այո»

(եթե ֆայլը գոյություն ունի «այո» բառը կցուցադրվի)

test -O / path / to / file1 && echo «այո»

(եթե դուք պատկանում եք file1, ապա «այո» բառը դրսեւորվում է »)

Տերմինոլոգիա

Համեմատելով բազմակի պայմանները

Մինչ այժմ ամեն ինչ մի բան համեմատում է մյուսի դեմ, բայց եթե ուզում եք համեմատել երկու պայմանները:

Օրինակ, եթե կենդանին ունի 4 ոտք եւ «մո» է գնում, հավանաբար կով է: Պարզապես ստուգեք 4 ոտքերի համար, չի երաշխավորում, որ դուք ունեք կով, բայց ստուգեք ձայնը, որն անշուշտ կատարում է:

Երկու պայմանները ստուգելու համար միանգամից օգտագործեք հետեւյալ հայտարարությունը.

test 4 -eq 4-a "moo" = "moo" && echo "սա կով է" || echo «սա կով չէ»

Հիմնական մասը այստեղ է, որն է, եւ որն է:

Նույն թեստը կատարելու ավելի լավ եւ հաճախ օգտագործվող ձեւ կա եւ հետեւյալն է.

test 4 -eq 4 && թեստ "moo" = "moo" && echo "սա կով է" || echo «սա կով չէ»

Մեկ այլ փորձություն, որը դուք կարող եք կատարել, ստիպում եք համեմատել երկու հայտարարությունները եւ եթե ճիշտ է թողնել մի տող: Օրինակ, եթե ուզում եք ստուգել, ​​որ կա "file1.txt" ֆայլ կամ ֆայլ է կոչվում "file1.doc", կարող եք օգտագործել հետեւյալ հրահանգը

test -e file1.txt -o -e file1.doc && echo "file1 գոյություն ունի" || echo "file1 գոյություն չունի"

Հիմնական մասը այստեղ է, որը, կամ կողմնակի է:

Նույն թեստը կատարելու ավելի լավ եւ հաճախ օգտագործվող ձեւ կա եւ հետեւյալն է.

test -e file1.txt || test -e file1.doc && echo "file1 գոյություն ունի" || echo "file1 գոյություն չունի"

Վերացնելով թեստի բանալի բառը

Դուք իրականում չպետք է օգտագործեք բառի քննությունը, համեմատելու համար: Բոլորը պետք է անեք այս հայտարարությունը քառակուսի փակագծերում:

[-e file1.txt] && echo "file1 գոյություն ունի" || echo "file1 գոյություն չունի"

[Եւ] հիմնականում նշանակում է նույնը, ինչ փորձություն է:

Այժմ դուք գիտեք, որ դուք կարող եք բարելավել բազմաթիվ պայմանների համեմատությունը հետեւյալ կերպ.

[4 -eq 4] && ["moo" = "moo"] && echo "սա կով է" || echo «սա կով չէ»

[-e file1.txt] || [-e file1.doc] && echo "file1 գոյություն ունի" || echo "file1 գոյություն չունի"

Ամփոփում

Փորձարկման հրամանը ավելի օգտակար է սցենարներում, քանի որ կարող եք ստուգել մեկ փոփոխականի արժեքը մյուսի եւ հսկողության ծրագրային հոսքի դեմ: Ստանդարտ հրամանի տողում դուք կարող եք օգտագործել այն, ստուգելու, թե արդյոք ֆայլ կա կամ