ווי צו נוצן פּרובירן טנאָים אין אַ באַש Script

די פּרובירן באַפֿעל קענען זיין געוויינט אויף די לינוקס באַפֿעלן שורה צו פאַרגלייַכן איין עלעמענט קעגן אנדערן אָבער עס איז מער קאַמאַנלי געניצט אין באַשי שאָל סקריפּס ווי טייל פון קאַנדישאַנאַל סטייטמאַנץ וואָס קאָנטראָל לאָגיק און פּראָגראַם לויפן.

א באַסיק בייַשפּיל

איר קענען פּרובירן די קאַמאַנדז פשוט דורך עפענען אַ וואָקזאַל פֿענצטער .

פּרובירן 1 -עק 2 & & echo "יאָ" || עקאָו "קיין"

די אויבן באַפֿעל קענען זיין צעבראכן ווי גייט:

אין עסאַנס, די באַפֿעל איז קאַמפּערינג פון 1 צו 2 און זיי גלייַכן די עקאָו "יאָ" דערקלערונג איז עקסאַקיוטאַד וואָס דיספּלייז "יאָ" און אויב זיי טאָן ניט גלייַכן דעם עקאָו "קיין" סטאַטעמענט איז עקסאַקיוטאַד וואָס דיספּלייז "קיין".

קאַמפּערינג נומבערס

אויב איר זענען קאַמפּערינג עלעמענטן אַז פּאַרס ווי נומערן איר קענען נוצן די פאלגענדע קאַמפּערד אָפּערייטערז:

ביישפילן:

פּרובירן 1 -עק 2 & & echo "יאָ" || עקאָו "קיין"

(דיספּלייז "קיין" צו די פאַרשטעלן ווייַל 1 טוט ניט גלייַך 2)

פּרובירן 1 -גע 2 & & ווידערקאָל "יאָ" || עקאָו "קיין"

(דיספּלייז "קיין" צו די פאַרשטעלן ווייַל 1 איז נישט גרעסער אָדער גלייַך צו 2)

פּרובירן 1-גיגאבייט 2 & & ווידערקאָל "יאָ" || עקאָו "קיין"

(דיספּלייז "קיין" צו די פאַרשטעלן ווייַל 1 איז נישט גרעסער ווי 2)

פּרובירן 1 -לע 2 & & ווידערקאָל "יאָ" || עקאָו "קיין"

(דיספּלייז "יאָ" צו די פאַרשטעלן ווייַל 1 איז ווייניקער ווי אָדער גלייַך צו 2)

פּרובירן 1-ף 2 & & ווידערקאָל "יאָ" || עקאָו "קיין"

(דיספּלייז "יאָ" צו די פאַרשטעלן ווייַל 1 איז ווייניקער ווי אָדער גלייַך צו 2)

פּרובירן 1-ען 2 & & ווידערקאָל "יאָ" || עקאָו "קיין"

(דיספּלייז "יאָ" צו די פאַרשטעלן ווייַל 1 טוט ניט גלייַך 2)

Comparing Text

אויב איר זענען קאַמפּערינג עלעמענטן וואָס פּאַרס ווי סטרינגס איר קענען נוצן די פאלגענדע קאַמפּערד אָפּערייטערז:

ביישפילן:

test "string1" = "string2" && echo "יאָ" || עקאָו "קיין"

(דיספּלייז "קיין" צו די פאַרשטעלן ווייַל "סטרינג 1" טוט נישט גלייַך "סטרינג 2")

test "string1"! = "string2" && echo "yes" || עקאָו "קיין"

(דיספּלייז "יאָ" צו די פאַרשטעלן ווייַל "סטרינג 1" טוט נישט גלייַך "סטרינג 2")

test -n "string1" && echo "יאָ" || עקאָו "קיין"

(דיספּלייז "יאָ" צו די פאַרשטעלן ווייַל "סטרינג 1" האט אַ שטריקל לענג גרעסער ווי נול)

test -z "string1" && echo "יאָ" || עקאָו "קיין"

(דיספּלייז "קיין" צו די פאַרשטעלן ווייַל "סטרינג 1" האט אַ שטריקל לענג גרעסער ווי נול)

קאַמפּערינג פילעס

אויב איר זענען קאַמפּערינג טעקעס איר קענען נוצן די פאלגענדע קאַמפּערד אָפּערייטערז:

ביישפילן:

test / path / to / file1 -n / path / to / file2 & echo "yes"

(אויב טעקע 1 איז נייַער ווי פילע 2 דעמאָלט דער וואָרט "יאָ" וועט זיין געוויזן)

test -e / path / to / file1 && echo "yes"

(אויב טעקע1 יגזיסץ די וואָרט "יאָ" וועט זיין געוויזן)

test -O / path / to / file1 && echo "yes"

(אויב איר אייגן טעקע 1 דעמאָלט דער וואָרט "יאָ" איז געוויזן ")

טערמינאָלאָגיע

קאַמפּערינג מער ווי איין קאָנדיטיאָנס

אַזוי ווייַט אַלץ איז געווען קאַמפּערינג איין זאַך קעגן אנדערן אָבער וואָס אויב איר ווילן צו פאַרגלייַכן צוויי באדינגונגען.

פֿאַר בייַשפּיל, אויב אַ כייַע האט 4 לעגס און גייט "מאָאָ" עס איז מיסטאָמע אַ קו. פשוט טשעק פֿאַר 4 פיס טוט נישט גאַראַנטירן אַז איר האָבן אַ קו, אָבער קאָנטראָלירן דעם געזונט עס מאכט זיכער.

צו פּרובירן ביידע באדינגונגען בייַ אַמאָל נוצן די פאלגענדע סטאַטעמענט:

test 4 -eq 4 -a "moo" = "moo" && echo "עס איז אַ קו" || עקאָו "עס איז נישט אַ קו"

דער שליסל טייל דאָ איז דער-אַ וואָס שטייט פֿאַר און.

עס איז אַ בעסער און מער קאַמאַנלי געניצט וועג צו דורכפירן די זעלבע פּראָבע און דאָס איז ווי גייט:

test 4 -eq 4 && test "moo" = "moo" && echo "עס איז אַ קו" || עקאָו "עס איז נישט אַ קו"

אן אנדער פּרובירן איר זאל וועלן צו מאַכן איז קאַמפּערינג צוויי סטייטמאַנץ און אויב איינער איז אמת רעזולטאַט אַ שטריקל. למשל, אויב איר ווילן צו קאָנטראָלירן אַז אַ טעקע געהייסן "טעקע1.טקסט" יגזיסץ אָדער אַ טעקע גערופן "טעקע1.דאָק" יגזיסץ איר קענען נוצן דעם ווייַטערדיק באַפֿעל

test -e file1.txt -o -e file1.doc && echo "file1 exists" || עקאָו "טעקע 1 טוט נישט עקסיסטירן"

דער שליסל טייל דאָ איז די -אָ וואָס שטייט פֿאַר אָדער.

עס איז אַ בעסער און מער קאַמאַנלי געניצט וועג צו דורכפירן די זעלבע פּראָבע און דאָס איז ווי גייט:

test -e file1.txt || test -e file1.doc && echo "file1 exists" || עקאָו "טעקע 1 טוט נישט עקסיסטירן"

עלימינירן די טעסט קייוואָרד

איר טאָן ניט טאַקע דאַרפֿן צו נוצן די וואָרט פּרובירן צו דורכפירן די פאַרגלייַך. אַלע וואָס איר האָט צו טאָן איז ענקלאָוז די דערקלערונג אין קוואַדראַט בראַקאַץ ווי גייט:

[-e file1.txt] && echo "file1 exists" || עקאָו "טעקע 1 טוט נישט עקסיסטירן"

די [און] בייסיקלי מיטל די זעלבע ווי די פּרובירן.

איצט איר וויסן דאָס איר קענען פֿאַרבעסערן אויף קאַמפּערינג קייפל טנאָים ווי גייט:

[4-אַד 4] && ["moo" = "moo"] && echo "עס איז אַ קו" || עקאָו "עס איז נישט אַ קו"

[-e file1.txt] || [-e file1.doc] && echo "file1 exists" || עקאָו "טעקע 1 טוט נישט עקסיסטירן"

Summary

די פּרובירן באַפֿעלן איז מער נוצלעך אין סקריפּס ווייַל איר קענען פּרובירן די ווערט פון איינער בייַטעוודיק קעגן אנדערן און קאָנטראָל פּראָגראַם לויפן. אויף דעם נאָרמאַל באַפֿעלן שורה, איר קענען נוצן עס צו פּרובירן צי אַ טעקע יזיז אָדער