וואָקזאַל וואָקזאַל: סטאַנדאַרד סטרים

ברוכים הבאים צו נאָך אַ פרייטיק ...

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

נאָרמאַל סטרים

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

שנעל דיאַגראַמע אויף נאָרמאַל סטרימז.

שנעל דיאַגראַמע אויף נאָרמאַל סטרימז.

די 3 איך / אָ קאַנעקשאַנז זענען: סדין נאָרמאַל ינפּוט, סטדאָוט נאָרמאַל רעזולטאַט, סטדערר נאָרמאַל טעות.

סטדין: סטאַנדאַרד אַרייַנשרייַב

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

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

אַ ביישפּיל פון סטדין וואָלט זיין:

סאָרט <ליסטינג

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

סטדאָוט: סטאַנדאַרד פּראָדוקציע

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

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

test.sh

#! / בין / באַש אויב [-ט 0]; דערנאָך ווידערקאָל "איר נוצן סטדאָוט" עליף [-ט 1]; דעמאָלט ווידערקאָל "איר זענט ניצן סטדין" אַנדערש ווידערקאָל "ברוטאַל טעות" פי

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

באַש test.sh לס | באַש test.sh באַש test.sh </ עטק / פּאַססווד
די קשיא אין די קשיא און די אַוטפּוץ ...

די קשיא אין די קשיא און די אַוטפּוץ ...

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

סטדערר: סטאַנדאַרד טעות

נאָרמאַל טעות איז די וועג ווי מגילה אַרויסווייַזן ערראָרס אָדער דיאַגנאָסטיקס. עס איז רעפּריזענטיד דורך דעסקריפּטאָר 2.

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

לס> אינפֿאָרמאַציע.טקסט

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

אַנשטאָט אויב מיר נוצן 2> צו אָנווייַזן צו ראַטעווען סטדערר אין דער טעקע:

לס פאָאָ 2> אינפֿאָרמאַציע.טקסט

איצט עס וועט שפּאָרן די טעות אינפֿאָרמאַציע אין די טעקסט טעקע.

רובֿ פון די שאָל לאָזן סטדערר און סטדאָוט צו זיין סטאָרד אין אַ איין באַפֿעל באַפֿעלן מיט &> ווו פאָאָ איז אַ ניט-עגזיסטאַנט וועגווייַזער

ls דאַונלאָודז Foo &> info.txt

דער טעקע כּולל די אינפֿאָרמאַציע פון ​​די טעות ווען עקסאַקיוטיישאַן LS אין Foo און רשימה די דיירעקטעריז אונטער דאָוונלאָאַדס.

און לעסאָף, וואָס איז אַז באַרימט 2> & 1?

פּשוט, רידערעקט סטערר צו סטדאָוט. אַז & אין די מיטל פון> און 1 מיטל עס וועט רידערעקט צו סטדאָוט. אויב עס איז נישט דאָרט, עס וואָלט זיין עפּעס ווי ... "רידערעקט די טעות צו טעקע 1".

און מיט דעם עס איז מעגלעך צו רידערעקט:

  • סטדאָוט צו אַ טעקע
  • סטדערר צו אַ טעקע
  • סטדאָוט צו סטדערר
  • סטדערר צו סטדאָוט
  • סטדערר און סטדאָוט צו אַ טעקע
  • צווישן אנדערע

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


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

6 באַמערקונגען, לאָזן דיין

לאָזן דיין באַמערקונג

אייער בליצפּאָסט אַדרעס וועט נישט זייַן ארויס.

*

*

  1. פאַראַנטוואָרטלעך פֿאַר די דאַטן: Miguel Ángel Gatón
  2. ציל פון די דאַטן: קאָנטראָל ספּאַם, קאָמענטאַר פאַרוואַלטונג.
  3. לעגיטימאַטיאָן: דיין צושטימען
  4. קאָמוניקאַציע פון ​​די דאַטן: די דאַטן וועט נישט זיין קאַמיונאַקייטיד צו דריט פּאַרטיעס אַחוץ דורך לעגאַל פליכט.
  5. דאַטן סטאָרידזש: דאַטאַבייס כאָוסטיד דורך Occentus Networks (EU)
  6. רעכט: צו קיין צייט איר קענט באַגרענעצן, צוריקקריגן און ויסמעקן דיין אינפֿאָרמאַציע.

  1.   עליאָטימע 3000 דאָס

    אינטערעסאנט. דאַנק צו דיין טוטאָריאַלז, איך בין פיל מער פון Bash.

  2.   קווינסי מאַגאָאָ דאָס

    ליב, טשיקאַווע, אָבער איר האָט אַ טעות אין די פאלגענדע שורה:

    "און ווען רידערעקטינג די טעקע צו די ls באַפֿעל", עס זאָל זיין "און ווען רידערעקטינג די טעקע צו די סאָרט באַפֿעל".

    א גרוס.

  3.   מיגעל דאָס

    עס איז אַ טעות אין די אָנהייב פון די טעקסט. ווען איר אָנווייַזן דעם באַפֿעל «לס», עס זאָל זיין «סאָרט»:
    "עס נעמט אַלע אינפֿאָרמאַציע וואָס איז אין דער רשימה - אין דעם פאַל די נומערן געשריבן ראַנדאַמלי - און ווען רידערעקטינג די טעקע צו די ls באַפֿעל (דאָ עס וואָלט זיין סאָרט)"

    גרעעטינגס און דאַנקען פֿאַר ייַנטיילונג דיין אַרבעט

  4.   ראָאַדער דאָס

    דאָס איז גרויס פֿאַר Cron, וווּ איר ווילט אַז די פּראָדוקציע זאָל זיין פלאַשט (/ dev / null), אָבער די ערראָרס זאָל זיין סטאָרד אין טעקעס. ווען איך טאָן דאָס, איך יוזשאַוואַלי נוצן די דאַטע באַפֿעלן צו ספּעציפיצירן פּונקט ווען זיי ניט אַנדערש.

    Bash (sh) האט די מכשירים אַזוי דעוועלאָפּעד דורך די יוניקס פילאָסאָפיע "טאָן איין זאַך און טאָן דאָס געזונט"

  5.   לאָלאָ דאָס

    נו, איך האב נישט געפונען עפּעס

    1.    קול דאָס

      האַה געזונט, עס איז גאַנץ גוט דערקלערט, וואָס איר האָט נישט פֿאַרשטיין?