Փորձարկման հրամանը կարող է օգտագործվել Linux հրամանի տողում, մեկ տարրը համեմատել մյուսի հետ, սակայն այն ավելի հաճախ օգտագործվում է BASH shell սցենարներում, որպես պայմանական հայտարարությունների մի մաս, որոնք վերահսկում են տրամաբանությունը եւ ծրագրային հոսքը:
Հիմնական օրինակ
Դուք կարող եք փորձել այս հրամանները պարզապես տերմինալային պատուհան բացելով :
test 1 -eq 2 && echo «այո» || echo "ոչ"
Վերոհիշյալ հրամանը կարող է կոտրվել հետեւյալ կերպ.
- test - սա նշանակում է, դուք պատրաստվում եք համեմատություն կատարել
- 1 - առաջին տարրը, որը համեմատելու եք
- -eq (ինչպես եք համեմատում, այս դեպքում, դուք փորձարկում եք, արդյոք մեկ համարը հավասար է մեկ այլ)
- 2 - այն տարրը, որը համեմատում եք նոր տարրը կրկին
- && - վարվեց հետեւյալ հայտարարությունը, եթե արդյունքը ճիշտ է
- echo «այո» - հրամանը վարելու դեպքում, եթե համեմատությունը ճշմարիտ է
- || - վարվեց հետեւյալ հայտարարությունը, եթե արդյունքը սխալ է
- echo "no" - հրամանը վարելու դեպքում, եթե համեմատությունը կեղծ է
Ըստ էության, հրամանը համեմատում է 1-ին եւ համապատասխանում է «այո» արձանագրությունին, որը կատարվում է «այո» -ում, եւ եթե դրանք չեն համապատասխանում արձագանքը, «ոչ» հայտարարություն է կատարվում, որը «ոչ» է:
Համեմատելով համարները
Եթե համեմատում եք թվեր վերլուծող տարրերը, կարող եք օգտագործել հետեւյալ համեմատական օպերատորները.
- -eq - արժեքը 1 հավասար արժեք 2
- -g - արժեքը 1-ը կամ ավելի մեծ է 2-ին
- -gt - արժեքն ավելի մեծ է, քան արժեքը 2
- -le- արժեքը 1-ից պակաս կամ հավասար է 2-ին
- -lt - արժեքը 1 պակաս, քան արժեքը 2
- -ne- արժեքը 1 չի համարում հավասար արժեք 2
Օրինակներ `
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)
Համեմատելով տեքստը
Եթե համեմատում եք տողերի վերլուծման տարրերը, կարող եք օգտագործել հետեւյալ համեմատական օպերատորները.
- = - 1-ին string string 2- ը
- ! = - տողը 1 տարբեր տող է 2
- -n- լարային երկարությունը 0-ից ավելի է
- -զ - լարային երկարությունը 0 է
Օրինակներ `
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» ունի լարային երկարությունը, որը զրոյից մեծ է)
Համեմատելով Ֆայլեր
Եթե համեմատում եք ֆայլերը, կարող եք օգտագործել հետեւյալ համեմատական օպերատորները.
- -ef - Արդյոք ֆայլերը ունեն նույն սարքը եւ inode համարները (դրանք նույն ֆայլն են)
- -nt - Առաջին ֆայլը նոր է, քան երկրորդ ֆայլը
- -ot - Առաջին ֆայլը ավելի մեծ է, քան երկրորդ ֆայլը
- -բ - ֆայլը գոյություն ունի եւ արգելափակված է հատուկ
- -c - ֆայլը գոյություն ունի եւ հատուկ բնույթ է կրում
- -Դ - Ֆայլը գոյություն ունի եւ գրացուցակ է
- -e - ֆայլը գոյություն ունի
- -f - ֆայլը գոյություն ունի եւ հերթական ֆայլ է
- -g - ֆայլը գոյություն ունի եւ ունի նշված խմբի համարը
- -G - ֆայլը գոյություն ունի եւ սեփականատերը օգտագործողի խմբի կողմից
- -h - ֆայլը գոյություն ունի եւ խորհրդանշական հղում է
- -k - ֆայլը գոյություն ունի եւ ունի իր կպչուն բիթը
- -Լ - Նույնը, ինչպես -հ
- -O - ֆայլը գոյություն ունի, դուք սեփականատեր եք
- -p - ֆայլը գոյություն ունի եւ անվանված խողովակ է
- -r - ֆայլը գոյություն ունի եւ ընթեռնելի է
- -s - ֆայլը գոյություն ունի եւ ունի չափս ավելի մեծ է
- -S - ֆայլը գոյություն ունի եւ վարդակից
- -t - ֆայլի նկարագրիչը բացվում է տերմինալում
- -u - ֆայլը գոյություն ունի եւ սահմանված օգտվողի-id բիթը սահմանվում է
- -w - ֆայլը գոյություն ունի եւ գրված է
- -x - ֆայլը գոյություն ունի եւ գործարկվում է
Օրինակներ `
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 գոյություն չունի"
Ամփոփում
Փորձարկման հրամանը ավելի օգտակար է սցենարներում, քանի որ կարող եք ստուգել մեկ փոփոխականի արժեքը մյուսի եւ հսկողության ծրագրային հոսքի դեմ: Ստանդարտ հրամանի տողում դուք կարող եք օգտագործել այն, ստուգելու, թե արդյոք ֆայլ կա կամ