ווי צו שרייב אויב-סטאַטעמענץ אין אַ באַש-סקריפּט

קאַמאַנדז, סינטאַקס, און ביישפילן

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

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

count = 5 אויב [$ count == 5] דעמאָלט echo "$ count" פי

אין דעם בייַשפּיל, די בייַטעוודיק "ציילן" איז געניצט צו ספּעציפיצירן אַ צושטאַנד אַז איז געניצט ווי טייל פון די אויב-ויסזאָגונג. איידער די אויב-ויסזאָגונג איז עקסאַקיוטאַד, די בייַטעוודיק "ציילן" איז אַסיינד די ווערט "5". דער אויב-דערקלערונג דעמאָלט טשעק אויב דער ווערט פון "ציילן" איז "5". אויב דאָס איז דער פאַל די ויסזאָגונג צווישן די טערמינען "דעמאָלט" און "פי" זענען עקסאַקיוטאַד, אַנדערש קיין סטייטמאַנץ ווייַטערדיק די אויב-ויסזאָגונג זענען עקסאַקיוטאַד. די קיווערד "פי" איז "אויב" ספּעלד צוריק. די באַס סקריפּטינג שפּראַך ניצט דעם קאַנווענשאַן צו צייכן די סוף פון אַ קאָמפּלעקס אויסדרוק, אַזאַ אַן אויב-ויסזאָגונג אָדער פאַל-סטייטמאַנץ.

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

אויב איר האָבן אַ סיטואַציע ווו אַ שטיק פון קאָד זאָל זיין עקסאַקיוטאַד בלויז אויב אַ צושטאַנד איז נישט אמת, איר קענען נוצן די קיווערד "אַנדערש" אין אַן אויב-ויסזאָגונג, ווי אין דעם בייַשפּיל:

count = 5 אויב [$ count == 5] דעמאָלט echo "$ count" אַנדערש echo "count is not 5" פי

אויב די צושטאַנד "$ count == 5" איז אמת, די סיסטעם דרוקן די ווערט פון די בייַטעוודיק "ציילן", אַנדערש עס דרוקן די שטריקל "ציילן איז ניט 5".

אויב איר ווילן צו פאַרשליסן צווישן קייפל טנאָים, איר קענען נוצן די קיווערד "עליף", וואָס איז דערייווד פון "אַנדערש אויב", ווי אין דעם בייַשפּיל:

אויב [$ count == 5] דעמאָלט echo "count five" elif [$ count == 6] דעמאָלט echo "count is six" אַנדערש echo "none of the above" fi

אויב "ציילן" איז "5", די סיסטעם פּרינץ אויס "ציילן איז פינף". אויב "ציילן" איז נישט "5" אָבער "6", די סיסטעם דרוקן "ציילן איז זעקס". אויב עס איז ניט "5" אדער "6", די סיסטעם דרוקן "קיינער פון די אויבן".

ווי איר קען האָבן געסט, איר קענען האָבן קיין נומער פון "עליף" קלאָזיז. א ביישפיל מיט קייפל "עליף" טנאָים וואָלט זיין:

[$ count == 7] און יעדו "ציילן איז זיבן" [$ count == 5] און יעדו [$ count == 6], then echo "count is six" = 8] דעריבער עקאָו "ציילן איז אַכט" [$ count == 9] דעריבער עקאָו "ציילן איז נייַן" אַנדערש עקאָו "גאָרניט פון די אויבן" פי

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

פאַל "$ ציילן" אין 5) עקאָו "ציילן איז פינף" ;; 6) עקאָו "ציילן איז זעקס" ;; 7) עקאָו "ציילן איז זיבן" ;; 8) עקאָו "ציילן איז אַכט" ;; 9) עקאָו "ציילן איז נייַן" ;; *) ווידערקאָל "none of the above" esac

אויב-סטייטמאַנץ זענען אָפט געניצט ין פֿאַר לויפּס אָדער בשעת-לופּס ווי אין דעם בייַשפּיל:

אויב איר טאָן ניט האָבן צו באַצאָלן $ 1 אָדער $ (1)

איר קענען אויך האָבן נעסטעד אויב סטייטמאַנץ. סימפּליסט נעסטעד אויב דערקלערונג איז פון די פאָרעם: if ... then ... else ... if ... then ... fi ... fi. אָבער, אויב-ויסזאָגונג קענען נעסטעד מיט אַרביטרערי קאַמפּלעקסיטי.

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

די באַס שאָל גיט אנדערע פּראָגראַממינג קאַנסטראַקץ, אַזאַ ווי פֿאַר לויפּס , בשעת-לופּס , און אַריטמעטיק אויסדרוקן .