Чӣ тавр истифода бурдани шароитҳои санҷиш дар доираи Системаи Bash

Фармони санҷиш метавонад дар сатри фармондеҳи Linux истифода шавад, то як унсури муқоиса бо дигар муқоиса карда шавад, аммо он дар маъхазҳои сиёҳии BASH ҳамчун қисми шартҳои шартӣ, ки назорати мантиқӣ ва ҷараёни равандро истифода мебарад.

Намунаи асосӣ

Шумо метавонед ин фармонҳоро фақат бо кушодани тирезаи терминал .

санҷиш 1 -ик 2 && echo "ҳа" || echo "не"

Фармони мазкур метавонад ба таври зайл қатъ карда шавад:

Дар асл, фармон Фарқияти 1 то 2-ро дар бар мегирад ва онҳо бо эъломияи эволютсияи "ҳа" мувофиқат мекунанд, ки "ҳа" нишон дода шудаанд ва агар онҳо "не" -ро иҷро накунанд, ки "не" нишон дода шудаанд.

Рақамҳои рақамӣ

Агар шумо дар муқоиса бо унсурҳое, ки ба монанди рақамҳо истифода карда метавонед, метавонед операторҳои муқоисавии зеринро истифода баред:

Намунаҳо:

санҷиш 1 -ик 2 && echo "ҳа" || echo "не"

("Не" -ро ба экран нишон медиҳад, чунки 1 адад баробар нест 2)

санҷиш 1-ро 2 && echo "ҳа" || echo "не"

("Не" -ро ба экран нишон медиҳад, зеро 1 адад зиёд нест ё 2)

санҷиш 1 -ғунд 2 && echo "ҳа" || echo "не"

("Не" -ро ба экран намоиш медиҳад, зеро 1 на беш аз 2)

санҷиш 1 - 2 2 && echo "ҳа" || echo "не"

(нишондиҳандаҳои "ҳа" ба экран, чунки 1 адад камтар аст ё 2)

санҷиш 1 - 2 2 && echo "ҳа" || echo "не"

(нишондиҳандаҳои "ҳа" ба экран, чунки 1 адад камтар аст ё 2)

санҷиш 1-2 2 && echo "ҳа" || echo "не"

(нишон медиҳад, ки "экрани" ба экрани "1" баробар нест 2)

Матнро муқоиса кунед

Агар шумо дар муқоиса бо унсурҳое, ки ба монанди сутунҳо фарқ мекунанд, метавонед операторҳои муқоисавии зеринро истифода баред:

Намунаҳо:

санҷед "string1" = "string2" && echo "ҳа" || echo "не"

("Не" -ро ба экран нишон медиҳад, чунки "string1" ба "string2" баробар нест)

санҷед "string1"! "string2" && echo "ҳа" || echo "не"

("Ҳа" -ро ба экран намоиш медиҳад, чунки "string1" баробар нест "string2")

test -n "string1" && echo "ҳа" || echo "не"

("Ҳа" -ро ба экран нишон медиҳад, чунки "string1" дорои дарозии ранг аз сифр аст)

санҷиш-string "string1" && echo "ҳа" || echo "не"

("Не" -ро ба экран нишон медиҳад, чунки "string1" дорои дарозии сатртар аз сифр аст)

Мониторинги файлҳо

Агар шумо файлҳоро муқоиса кунед, метавонед операторҳои муқоисавии зеринро истифода баред:

Намунаҳо:

test / path / ба / file1 -n / path / ба / file2 && echo "ҳа"

(Агар file1 навтар аз file2 бошад, калимаи "ҳа" нишон дода мешавад)

test -e / path / ба / file1 && echo "ҳа"

(агар file1 мавҷуд бошад, калимаи "ҳа" нишон дода мешавад)

санҷиш -O / роҳ / ба / file1 && echo "ҳа"

(агар шумо файл1 дошта бошед, калимаи "ҳа" нишон дода мешавад).

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

Муқоиса кардани шароитҳои бисёрҷониба

Ҳамин тариқ, ҳама чиз як чизи дигареро муқоиса карда буд, аммо чӣ бояд кард, агар шумо ду шартро муқоиса кунед.

Масалан, агар чорво 4 симта дошта бошад ва "moo" меравад, он метавонад гов бошад. Танҳо санҷиш барои 4 поича кафолат намедиҳад, ки шумо гов дошта бошед, аммо санҷед, ки оё он садо медиҳад.

Барои санҷиши ҳар ду шарт дар як вақт истифода баред:

озмоиши 4-н 4-ро "moo" = "moo" && echo "он гов" || echo "ин гов нест"

Қисми асосии ин аст -a, ки барои он аст.

Услуби беҳтар ва бештар истифодашавандаест, ки ба ҳамон санҷиш мегузаранд ва чунин аст:

4-синфи 4 && озмуни "moo" = "moo" && echo "он гов" || echo "ин гов нест"

Санҷиши дигареро, ки шумо мехоҳед ба кор баред, муқоиса кардани ду изҳорот аст ва агар ҳақиқатан як сатрро иҷро кунед. Масалан, агар шумо мехоҳед санҷед, ки файли "file1.txt" мавҷуд аст ё файл "file1.doc" ном дорад, шумо метавонед фармонро иҷро кунед

test -e file1.txt -o -e file1.doc && echo "file1 вуҷуд дорад" || echo "file1 вуҷуд надорад"

Қисми асосии ин аст - o, ки барои ё.

Услуби беҳтар ва бештар истифодашавандаест, ки ба ҳамон санҷиш мегузаранд ва чунин аст:

санҷиши file1.txt || test -e file1.doc && echo "file1 вуҷуд дорад" || echo "file1 вуҷуд надорад"

Тоза кардани калимаи калидӣ

Шумо ба ҳақиқат надоред, ки санҷиши калимаро барои иҷрои муқоисавӣ истифода баред. Ҳамаи шумо бояд корро дар матн дар майдони майдонча ҷойгир кунед:

[-e file1.txt] && echo "file1 вуҷуд дорад" || echo "file1 вуҷуд надорад"

[Ва] асосан маънои санҷишро дорад.

Акнун шумо медонед, ки шумо метавонед дар муқоиса кардани шароитҳои гуногун ба таври зерин такмил диҳед:

[4] 4] && ["moo" = "moo"] && echo "он гов" || echo "ин гов нест"

[-e file1.txt] || [-e file1.doc] && echo "file1 вуҷуд дорад" || echo "file1 вуҷуд надорад"

Натиҷа

Фармони санҷиш дар сутунҳо хеле муфид аст, зеро шумо метавонед арзиши як тағйирёбиро бар зидди дигар танзим кунед ва ҷараёни ҷараёни назоратро тафтиш кунед. Дар сатри фармоиши фармоиш, шумо метавонед онро санҷед, ки оё файл мавҷуд аст ё не