სატესტო ბრძანება შეიძლება გამოყენებულ იქნას Linux- ის ბრძანებულებით, რომ შევადაროთ ერთი ელემენტი მეორეზე, მაგრამ ეს უფრო ხშირად გამოიყენება BASH Shell სკრიპებში, როგორც პირობითი განცხადებები, რომლებიც აკონტროლებენ ლოგიკას და პროგრამულ ნაკადს.
ძირითადი მაგალითი
თქვენ შეგიძლიათ სცადოთ ეს ბრძანებები უბრალოდ ტერმინალური ფანჯრის გახსნით .
test 1 -eq 2 && echo "yes" || ეხო "არა"
აღნიშნული ბრძანება შეიძლება ჩამოყალიბდეს შემდეგნაირად:
- ტესტი - ეს ნიშნავს, რომ თქვენ შეასრულებთ შედარებას
- 1 - პირველი ელემენტი თქვენ აპირებთ შედარებას
- -ეკი (როგორ ხარ შედარებით, ამ შემთხვევაში, ხომ არ ვამოწმებთ თუ არა ერთი რიცხვი კიდევ ერთს)
- 2 - ელემენტს, რომელიც კვლავ პირველ ელემენტებს ადარებს
- && - აწარმოებს შემდეგ განცხადებას, თუ შედეგი მართალია
- ეხო "დიახ" - ბრძანება აწარმოებს, თუ შედარება დაბრუნდება ჭეშმარიტი
- || - ჩაითვლება შემდეგი განცხადება, თუ შედეგი ყალბია
- ეხო "არა" - ბრძანება აწარმოებს, თუ შედარება ბრუნდება
არსებითად, ბრძანება 1-დან 2-მდე ადარებს და ისინი "დიახ" -ის შესრულებას ეხმაურება, რომელიც "დიახ" აჩვენებს და თუ ისინი არ ემთხვევა ეხო "არა" განცხადებას, რომელიც აჩვენებს "არა".
შედარება ნომრები
თუ შევადარებთ ელემენტებს, რომლებიც ნომრებს იყენებენ, შეგიძლიათ გამოიყენოთ შემდეგი შედარება ოპერატორები:
- -eq - ის მნიშვნელობა 1 თანაბარი მნიშვნელობა 2
- -ge - არის ღირებულება 1 უფრო დიდი ან ტოლი ღირებულების 2
- -gt - არის ღირებულება 1 მეტი ღირებულების 2
- -le - არის ღირებულება 1 ნაკლები ან ტოლია ღირებულება 2
- -lt - არის ღირებულება 1 ნაკლები ღირებულების 2
- -ne - ის მნიშვნელობა 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 შეგიძლიათ გამოიყენოთ შემდეგი შედარებით ოპერატორები:
- = - სტრიქონი 1 სტრიქონი 2
- ! = - სიმებიანი 1 განსხვავდება სიმებიანი 2-ისთვის
- -n - არის სიგანე სიგრძე 0-ზე მეტი
- -z - არის სიმებიანი სიგრძე 0
მაგალითები:
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" აქვს სიგრძის სიგრძეზე მეტი ნულოვანი)
შედარება ფაილები
თუ ფაილების შედარება შეგიძლიათ გამოიყენოთ შემდეგი შედარების ოპერატორები:
- -ef - ფაილებს აქვთ იგივე მოწყობილობა და ინტოდული რიცხვები (იგივე ფაილია)
- -nt - არის პირველი ფაილი, ვიდრე მეორე ფაილი
- -ot - არის პირველი ფაილი, ვიდრე მეორე ფაილი
- -b - ფაილი არსებობს და არის სპეციალური ბლოკი
- -c - ფაილი არსებობს და არის სპეციალური სპეციალური
- -d - ფაილი არსებობს და არის დირექტორია
- -e - ფაილი არსებობს
- -f - ფაილი არსებობს და არის ჩვეულებრივი ფაილი
- -g - ფაილი არსებობს და აქვს მითითებული ჯგუფის ნომერი
- -G - ფაილი არსებობს და მფლობელი მომხმარებლის ჯგუფის მიერ
- -h - ფაილი არსებობს და არის სიმბოლური ბმული
- -k - ფაილი არსებობს და აქვს მისი წებოვანი ნაკრები
- -L - იგივე როგორც -h
- -O - ფაილი არსებობს მფლობელი
- -p - ფაილი არსებობს და არის დასახელებული მილები
- -r - ფაილი არსებობს და იკითხება
- -s - ფაილი არსებობს და აქვს ზომა მეტია, ვიდრე ნულოვანი
- -S - ფაილი არსებობს და არის სოკეტი
- -t - ფაილების დესკტოპი ტერმინალში გაიხსნა
- -u - ფაილი არსებობს და set-user-id bit არის მითითებული
- -w - ფაილი არსებობს და არის ჩაწერადი
- -x - ფაილი არსებობს და შესრულებულია
მაგალითები:
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 არ არსებობს"
შემაჯამებელი
ტესტი ბრძანება უფრო სასარგებლოა სკრიპტებით, რადგან შეგიძლიათ შეამოწმოთ ერთი ცვლადის ღირებულება სხვა და საკონტროლო პროგრამის ნაკადი. სტანდარტულ ბრძანებათა სტრიქონიდან, შეგიძლიათ გამოიყენოთ იგი, შეამოწმოთ თუ არა ფაილი