Бир Баш Script ичинде Test шарттарын кантип колдонсо болот?

Тест буйрук башка бир элементин салыштырып Linux буйрук сабында колдонулат, бирок бул жылы көбүрөөк колдонулуп жатат болот BASH номиналдык скриптердин бөлүгү катары шарттуу логикасы жана программа агымын башкарып турган.

А негизги үлгүсү

Силер бул сөздөрдү жөн гана сыноо болот айыккыс терезени ачып .

сыноо 1 -eq 2 "ооба" кошула && || Эмесе, "жок"

Жогоруда буйрук төмөнкүдөй бузуп салыш керек болот:

Кыскача айтканда, команда 2 1 салыштырып, алар сезесиз "ооба" көчүрмө туура "ооба", алар сезесиз дал келбейт, анда "жок" деген сөздөрү көрсөтүп турган аткарылат "жок" көрсөтүп турган ишке берилет.

салыштыруу Сандар

Сиз номерлери сыяктуу талдай элементтерди салыштырып, анда төмөнкү салыштыруу операторлорду колдоно аласыз:

мисалдар:

сыноо 1 -eq 2 "ооба" кошула && || Эмесе, "жок"

(1 2 бирдей туура келбейт, себеби экранга көрсөтүп, "жок")

сыноо 1 -ge 2 "ооба" кошула && || Эмесе, "жок"

(Экранга көрсөтүп, "жок", анткени 1-2 көбүрөөк же барабар эмес)

сыноо 1 -gt 2 "ооба" кошула && || Эмесе, "жок"

(1 2 жогору эмес, анткени экранга көрсөтүп, "жок")

сыноо 1 -le 2 "ооба" кошула && || Эмесе, "жок"

(Экранга көрсөтүп: "Ооба", анткени 1 2 төмөн же барабар эмес)

сыноо 1 -lt 2 "ооба" кошула && || Эмесе, "жок"

(Экранга көрсөтүп: "Ооба", анткени 1 2 төмөн же барабар эмес)

сыноо 1 -ne 2 "ооба" кошула && || Эмесе, "жок"

(1 2 бирдей туура келбейт, себеби экранга көрсөтүп, "ооба")

салыштыруу Text

Сиз Саптар катары талдоо элементтерди салыштырып, анда төмөнкү салыштыруу операторлорду колдоно аласыз:

мисалдар:

сыноо "string1" = "string2" && Эхо "ооба" || Эмесе, "жок"

( "String1" бирдей "string2" жок кылат, анткени экранга көрсөтүп, "жок")

сыноо "string1"! = "string2" && Эхо "ооба" || Эмесе, "жок"

( "String1" бирдей "string2" жок кылат, анткени экранга көрсөтүп, "ооба")

сыноо -н "string1" && Эхо "ооба" || Эмесе, "жок"

(Экранга көрсөтүп, "ооба", "string1" нөлдөн сап узундугу көбүрөөк, анткени)

Test -z "string1" && Эхо "ооба" || Эмесе, "жок"

( "String1", анткени экранга көрсөтүп, "жок" нөлдөн сап узундугу көбүрөөк ээ)

салыштыруу Files

Эгер документ салыштыруу, анда төмөнкү салыштыруу операторлорду колдоно аласыз:

мисалдар:

сыноо / жол / үчүн / file1 -n / жол / үчүн / file2 && Эхо "ооба"

(File1 file2 жанык болсо, анда сөз "ооба" деп көрсөтүлөт)

тест -e / жол / үчүн / file1 && Эхо "ооба"

(File1 сөз "ооба" бар көрсөтүлө турган болсо)

тест -O / жол / үчүн / file1 && Эхо "ооба"

(Эгер file1 анан сөзүн ээ болсо, "ооба" деп көрсөтүлөт ")

терминология

Салыштырмалуу бир нече шарттары

Буга чейин баары башка бир нерсе менен салыштырып, бирок эки шарттарды салыштырып кааласак эмне болот.

Мисалы, мал 4 буту бар болсо, "Музыка", ал, балким, бир уй. Жөн гана 4 буту үчүн текшерүү силерди бир уй бар экенин кепилдик бербейт, бирок бул сөзсүз кылат үн текшерүүдө.

бир жолу төмөнкү сөздөрдү пайдаланууга да шарт сынаш үчүн:

тест 4 -eq 4 биригип "мөө" = "мөө" && Эхо "ал уй" || "Бул уй эмес," Эхо

Бул жерде негизги бөлүгү жана чечмеленет -a болуп саналат.

Ошол эле тест жүргүзүү бир топ жакшырып, жалпы колдонулган ыкмасы болуп саналат жана төмөнкүдөй болот:

тест 4 -eq 4 && сыноо "мөө" = "мөө" && Эхо "ал уй" || "Бул уй эмес," Эхо

эки салыштыруу сиз чыгарууга умтулушу мүмкүн дагы текшерүү жана да чыныгы чыгаруу бир сап болсо. Мисалы, "file1.txt" аттуу билэ баар же "file1.doc" деп аталган бир билэ төмөнкү буйрук колдоно аласыз бар экенин текшерүү үчүн келсе,

сынап -e file1.txt епо -e file1.doc && Эхо "file1 бар" || кошулушат "file1 нерсе жок"

Бул жерде негизги бөлүгү же чечмеленет епо болуп саналат.

Ошол эле тест жүргүзүү бир топ жакшырып, жалпы колдонулган ыкмасы болуп саналат жана төмөнкүдөй болот:

тест -E file1.txt || тест -e file1.doc && Эхо "file1 бар" || кошулушат "file1 нерсе жок"

Жокко Test сүйлөм

Сиз чындыгында салыштыруу аткарууга сөз сыноого колдонуунун зарылдыгы жок. Эгер чын чарчы кашаанын ичинде арызды төмөнкүлөр тиркелиши керек:

[-e file1.txt] && Эхо "file1 бар" || кошулушат "file1 нерсе жок"

[Жана], негизинен сыноо эле дегенди билдирет.

Азыр сиз төмөнкүдөй бир нече шарттарды салыштыруу жакшырта алабыз билип:

[4--eq 4] && [ "мөө" = "мөө"] && Эхо "ал уй" || "Бул уй эмес," Эхо

[-e file1.txt] || [-e file1.doc] && Эхо "file1 бар" || кошулушат "file1 нерсе жок"

Жыйынтык

Эгер башка бир өзгөрмөнүн сыноо жана программалык агымын башкара алат, анткени, тесттин буйрук жазууларында көп пайдалуу. стандарттык буйрук сабында, сиз билэ бар-жогун текшерүү үчүн аны колдоно аласыз же