Როგორ გამოვიყენოთ სატესტო პირობები Bash Script- ში

სატესტო ბრძანება შეიძლება გამოყენებულ იქნას Linux- ის ბრძანებულებით, რომ შევადაროთ ერთი ელემენტი მეორეზე, მაგრამ ეს უფრო ხშირად გამოიყენება BASH Shell სკრიპებში, როგორც პირობითი განცხადებები, რომლებიც აკონტროლებენ ლოგიკას და პროგრამულ ნაკადს.

ძირითადი მაგალითი

თქვენ შეგიძლიათ სცადოთ ეს ბრძანებები უბრალოდ ტერმინალური ფანჯრის გახსნით .

test 1 -eq 2 && echo "yes" || ეხო "არა"

აღნიშნული ბრძანება შეიძლება ჩამოყალიბდეს შემდეგნაირად:

არსებითად, ბრძანება 1-დან 2-მდე ადარებს და ისინი "დიახ" -ის შესრულებას ეხმაურება, რომელიც "დიახ" აჩვენებს და თუ ისინი არ ემთხვევა ეხო "არა" განცხადებას, რომელიც აჩვენებს "არა".

შედარება ნომრები

თუ შევადარებთ ელემენტებს, რომლებიც ნომრებს იყენებენ, შეგიძლიათ გამოიყენოთ შემდეგი შედარება ოპერატორები:

მაგალითები:

test 1 -eq 2 && echo "yes" || ეხო "არა"

(მონიტორები "არა" ეკრანზე, რადგან 1 არ არის თანაბარი 2)

test 1 -ge 2 && echo "yes" || ეხო "არა"

(მონიტორები "არა" ეკრანზე, რადგან 1 არ არის უფრო დიდი ან ტოლია 2)

ტესტი 1-გტს 2 && ეხო "დიახ" || ეხო "არა"

(მონიტორები "არა" ეკრანზე, რადგან 1 არ არის მეტი 2)

test 1 -le 2 && echo "yes" || ეხო "არა"

(აჩვენებს "დიახ" ეკრანზე, რადგან 1 ნაკლებია ან ტოლია 2)

ტესტი 1-lt 2 && echo "yes" || ეხო "არა"

(აჩვენებს "დიახ" ეკრანზე, რადგან 1 ნაკლებია ან ტოლია 2)

ტესტი 1 -ne 2 && echo "yes" || ეხო "არა"

(აჩვენებს "დიახ" ეკრანზე, რადგან 1 არ არის 2)

ტექსტის შედარება

თუ თქვენ შედარებით ელემენტები, რომლებიც parse როგორც strings შეგიძლიათ გამოიყენოთ შემდეგი შედარებით ოპერატორები:

მაგალითები:

test "string1" = "string2" && echo "yes" || ეხო "არა"

(მონიტორები "არა" ეკრანზე, რადგან "string1" არ არის თანაბარი "string2")

ტესტი "string1"! = "string2" && echo "yes" || ეხო "არა"

(აჩვენებს "დიახ" ეკრანზე, რადგან "string1" არ არის თანაბარი "string2")

test -n "string1" && echo "yes" || ეხო "არა"

(აჩვენებს "დიახ" ეკრანზე, რადგან "string1" აქვს სიგრძის სიგრძეზე მეტი სიგრძეზე)

test -z "string1" && echo "yes" || ეხო "არა"

(მონიტორები "არა" ეკრანზე, რადგან "string1" აქვს სიგრძის სიგრძეზე მეტი ნულოვანი)

შედარება ფაილები

თუ ფაილების შედარება შეგიძლიათ გამოიყენოთ შემდეგი შედარების ოპერატორები:

მაგალითები:

test / path / to / file1 -n / path / to / file2 && echo "დიახ"

(თუ file1 უფრო ახალია ვიდრე file2 მაშინ სიტყვა "დიახ" იქნება ნაჩვენები)

test -e / path / to / file1 && echo "დიახ"

(თუ file1 არსებობს სიტყვა "yes" იქნება ნაჩვენები)

test -O / path / to / file1 && echo "დიახ"

(თუ თქვენ ფლობენ file1 მაშინ სიტყვა "დიახ" არის ნაჩვენები ")

ტერმინოლოგია

შედარება რამდენიმე პირობები

ჯერჯერობით ყველაფერი ერთმანეთის წინააღმდეგ არის შედარებული, მაგრამ რა უნდა გაითვალისწინოთ ორი პირობით.

მაგალითად, თუ ცხოველს აქვს 4 ფეხები და მიდის "moo" ეს ალბათ ძროხაა. მხოლოდ 4 ფეხზე შემოწმება არ იძლევა იმის გარანტიას, რომ ძროხა გაქვს, მაგრამ ხმამაღლა შეამოწმებს ხმას.

ორივე პირობების შესამოწმებლად გამოიყენეთ შემდეგი განაცხადი:

ტესტი 4 -eq 4-a "moo" = "moo" && echo "ეს ძროხაა" || ეხო "ეს არ არის ძროხა"

ძირითადი ნაწილი აქ არის -ა, რომელიც დგას და.

არსებობს უკეთესი და უფრო ხშირად გამოყენებული გზა ასრულებს იგივე გამოცდას და ასეთია:

ტესტი 4 -eq 4 && ტესტი "moo" = "moo" && echo "ეს ძროხაა" || ეხო "ეს არ არის ძროხა"

კიდევ ერთი ტესტი დაგვჭირდება, რომ შევადაროთ ორი განაცხადი და თუ გამოდის ნამდვილი გამომავალი სიმებიანი. მაგალითად, თუ გსურთ შეამოწმოთ, რომ ფაილი "file1.txt" ან არსებობს "file1.doc" ფაილი, შეგიძლიათ გამოიყენოთ შემდეგი ბრძანება

test -e file1.txt -o -e file1.doc && echo "file1 არსებობს" || echo "file1 არ არსებობს"

ძირითადი ნაწილი აქ არის -o რომელიც დგას ან.

არსებობს უკეთესი და უფრო ხშირად გამოყენებული გზა ასრულებს იგივე გამოცდას და ასეთია:

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 "ეს ძროხაა" || ეხო "ეს არ არის ძროხა"

[-e file1.txt] || [-e file1.doc] && echo "file1 არსებობს" || echo "file1 არ არსებობს"

შემაჯამებელი

ტესტი ბრძანება უფრო სასარგებლოა სკრიპტებით, რადგან შეგიძლიათ შეამოწმოთ ერთი ცვლადის ღირებულება სხვა და საკონტროლო პროგრამის ნაკადი. სტანდარტულ ბრძანებათა სტრიქონიდან, შეგიძლიათ გამოიყენოთ იგი, შეამოწმოთ თუ არა ფაილი