טערמינאַל פרייטאג: באַש [שליסל יקספּאַנשאַן]

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

בראַסע יקספּאַנשאַן

אויף שפּאַניש, די שליסל יקספּאַנשאַן איז מיינט צו זיין אַ פֿונקציע ינספּייערד דורך C שעל, דאָס דזשענערייץ קאַמבאַניישאַנז צווישן די אותיות וואָס זענען אריין אין די בראַסאַז. די סדר עס ניצט איז פֿון לינקס צו רעכטס. דאָס איז נישט קאָמפּליצירט, אָבער עס איז אַן אָפּציע וואָס וועט זיין זייער נוציק אין אונדזער טאָורס פון GNU / Linux.

בייַשפּיל:

$ עקאָו אַ {1,2,3} a1 a2 a3

ווען געוויינט מיט קאָמעס (,) דזשענערייץ קאַמבאַניישאַנז צווישן די ווערט a און די וואַלועס ין די ברייסאַז. אויב עס איז קיין ווערט אַרויס די שליסלען, עס וואָלט נאָר ווייַזן אַמאָל יעדער ווערט אַז דער שליסל כּולל.

$ echo {a, b, c} abc

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

$ מקדיר ~ / דזשאָבס / {איינער, צוויי, דרייַ, פיר, פינף}

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

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

$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # איך טראַכטן איך וועט קיינמאָל באַקומען געוויינט צו דעם בלוי קאָליר אין בריוו

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

# אָנשטאָט שרייבן $ פֿאַר ((איך = 1; איך <= 5; איך ++)); טאָן ווידערקאָל "מייַן נומער $ איך"; געשען מייַן נומער 1 מייַן נומער 2 מייַן נומער 3 מייַן נומער 4 מייַן נומער 5 # היט קאָד ניצן בראַסע יקספּאַנשאַן. $ פֿאַר איך אין {1..5}; טאָן עקאָו "מייַן נומער $ i; פאַרטיק מייַן נומער 1 מייַן נומער 2 מייַן נומער 3 מייַן נומער 4 מייַן נומער 5 # דאָך עס איז גילטיק צו נוצן כאָטש די פּראָדוקציע איז אַנדערש. $ echo" מייַן נומער "{1..5} מייַן נומער 1 מייַן נומער 2 מייַן נומער 3 מייַן נומער 4 מייַן נומער 5

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

$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3

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

$ echo {a, c {1..3}, d} a c1 c2 c3 d

און לעסאָף פון באַש 4 עס איז מעגלעך צו פאַרגרעסערן די וואַלועס.

$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20

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

עקסטרע

ווי צו שאַפֿן אַ היגע בין

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

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

מקדיר ~ / .בין # אין דעם בייַשפּיל עס וועט זיין פאַרבאָרגן

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

אַרויספירן PATH = $ PATH: ~ / .בין

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

#! / bin / bash echo "הי $ 1, ווי זענען איר?"

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

$ העלא וואַדאַ # דעם וועט ווייַזן דעם אָנזאָג העלא וואַדאַ, ווי זענען איר?

מיט דעם שנעל טריק איר קענען לויפן דיין סקריפּס פאַסטער

אַז ס אַלע פֿאַר היינט מענטשן וואָס זענען געזונט 🙂
PS אנטשולדיגט פֿאַר מיסטייקס, אויב עס זענען, מיין אויגן זענען שוין קלאָוזינג האַהאַהאַ 😀


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

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

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

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

*

*

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

  1.   דונטער דאָס

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

    אויף דעם דרך טריק, Fedora דורך פעליקייַט טוט עפּעס ווי דאָס אָבער אין "~ /. לאָקאַל / בין", זען אַ סניפּאַט פון די באַש_פּראָפילע וואָס איך געבראכט צו דזשעסי.

    PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
    אַרויספירן פּאַטש

    1.    ריקאַרדאָ דאָס

      איך האָבן עטלעכע קאַנסערנז:
      1. וויאַזוי איך באַקומען צוויי ינטערוואַלז מיט יקספּאַנשאַן דורך פונקטן? צייטן {1..24,55..90} און אַז איך בין יקספּאַנדיד פון 1 צו 24 און פאָרזעצן מיט 55-XNUMX. ווי איך האט עס האט נישט אַרבעטן. פארוואס?

      2. אויב איך ווילן די ערשטע ווערט צו זיין נול און פאָרזעצן מיט די נאַמבערינג:
      געט: http://manga.favorito / בילד http://manga.favorito/imagen1
      איך געפרואווט די פאלגענדע וועג אָבער wget האט נישט באַקומען: http://manga.favorito/imagen{, 1..42} לויט מיר, איך וואָלט האָבן צו לאָזן די ערשטער נאָמען אָן אַ נומער און פאָרזעצן מיט די נאַמבערינג 1-42, אָבער עס איז נישט אַזוי. פארוואס?

    2.    Wada דאָס

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

  2.   דעמאָ דאָס

    זייער גוט זייער גוט פֿאַר די קאַנטראַביושאַנז פון וויסן צו די לינוקס וועלט און זיין זיכערהייט. עטלעכע פרייטאג איך האָפֿן איך קען לייענען ווי צו פֿאָרמאַטירן אַ פּענדריווע אין אַ וואָקזאַל און פאַרברענען אַ ISO DVD / CD בילד פון קיין פריי סיסטעם אין אַ וואָקזאַל.

    1.    Wada דאָס

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

  3.   edoardo_or דאָס

    ויסגעצייכנט וואָקזאַל אַרטיקל, דער בעסטער איך האָבן לייענען אין אַ לאַנג צייַט, קאַונטינג עטלעכע בלאָגס וואָס אַרויסגעבן טוטאָריאַלז פון דעם נוסח. א גרויסן יישר כח!!

    1.    Wada דאָס

      דאנק איר זייער פיל 😀 איך וועל פּרובירן צו האַלטן אַרויף.

  4.   juanli דאָס

    ויסגעצייכנט טיפּ פון די לאקאלע בין!
    גרעעטינגס!

    1.    Wada דאָס

      ויסגעצייכנט, גרויס אַז עס איז נוצלעך פֿאַר איר, דאַנקען איר זייער פיל פֿאַר די פּאַסינג ברודער 😀

  5.   גיסקאַרד דאָס

    זייער גוט! קיין געדאַנק וועגן דעם. דאַנקען 🙂

    1.    Wada דאָס

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

  6.   ריקאַרדאָ דאָס

    איך האָבן עטלעכע קאַנסערנז:
    1. וויאַזוי איך באַקומען צוויי ינטערוואַלז מיט יקספּאַנשאַן דורך פונקטן? צייטן {1..24,55..90} און אַז איך בין יקספּאַנדיד פון 1 צו 24 און פאָרזעצן מיט 55-XNUMX. ווי איך האט עס האט נישט אַרבעטן. פארוואס?

    2. אויב איך ווילן די ערשטע ווערט צו זיין נול און פאָרזעצן מיט די נאַמבערינג:
    געט: http://manga.favorito/imagen http://manga.favorito/imagen1

    איך געפרואווט די פאלגענדע וועג אָבער wget האט נישט באַקומען: http://manga.favorito/imagen{, 1..42} לויט מיר, איך וואָלט האָבן צו לאָזן די ערשטער נאָמען אָן אַ נומער און פאָרזעצן מיט די נאַמבערינג 1-42, אָבער עס איז נישט אַזוי. פארוואס?
    * אנטשולדיגט אָבער איך שטעלן דעם ערשטער פּאָסטן ווי אַן ענטפער און עס איז פאַלש אין עטלעכע פּאַרץ

    1.    Wada דאָס

      1.- דיין לאָגיק איז פאַלש איר האָבן צו נעסט עס האַהאַהאַ פּרובירן מיט $ echo {{1..24},{55..90}}

      2.- זעלביקער ווי די פֿריִערדיקע ... $ echo "URL"{,{1..42}}

      צי ניט זאָרג ברודער, מיר זענען דאָ צו העלפֿן אונדז

  7.   jvk85321 דאָס

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

    ווידערקאָל "מייַן נומער" {1..5} $ '\ n' | sed -e: אַ -e '$! N; s / \ n / \ n /; ta' | sed -e: אַ -e '$! N; s / 5 \ n / 5 /; ta'

    אָבער איך בעסער פּרינטף

    פּרינטף "I, I% d \ n" {1..5}

    און נוצן די זעלבע באַגריף פון שליסל יקספּאַנשאַן

    אַטטע
    jvk85321

    1.    jvk85321 דאָס

      ווי טאָן איר שטעלן די וואָקזאַל באָקסעס ????

      אַטטע
      jvk85321

  8.   jvk85321 דאָס

    טעסטינג אויב די קאָד קוויטל אַרבעט
    דזשעדזשע

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

    echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’

    pero prefiero printf

    printf “Mi numero %d\n” {1..5}

    און נוצן די זעלבע באַגריף פון שליסל יקספּאַנשאַן

    אַטטע
    jvk85321

    1.    jvk85321 דאָס

      איך בין לינקס מיט עטלעכע באַגז אָבער עס געארבעט

      איך בין לעבעדיק מאַלוקאָ

      אנטשולדיגט פֿאַר באַדערינג

      אַטטע
      jvk85321

      1.    Wada דאָס

        האַהאַהאַ איר געענטפערט זיך אָבער אויב עס איז צווישן לאַבעלס קיין ספּייסאַז ...

        און אויף די סאַבסטיטושאַן פון די, עס איז ניט נייטיק צו טאָן אַזוי פיל רער האַהאַהאַהאַ גענוג מיט:
        echo -e "Mi numero "{1..5}"\n\b"

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

      2.    Wada דאָס

        איך נעמען די ספּייסאַז! האַהאַהאַהאַהאַ

        לאָמיר זען איצט 😀

      3.    Wada דאָס

        Fuck עס איז "ווייניקער ווי" קאָד "גרעסער ווי" "ווייניקער ווי" / קאָד "גרעסער ווי" האַהאַהאַהאַ

      4.    jvk85321 דאָס

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

        אויך קומט מעסי
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5

        jvk@jvktos:~$
        און מיט דעם
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        איך טראַכטן די רגע גיט די רעזולטאַט בעסער, האַהאַהאַ

        אַטטע
        jvk85321

      5.    jvk85321 דאָס

        די לאַבעלס זענען אַ באַמער, העהעהע, לאָזן ס זען אויב זיי אַרבעט איצט
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        און מיט דעם
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        איך טראַכטן די רגע גיט די רעזולטאַט בעסער, האַהאַהאַ
        אַטטע
        jvk85321

      6.    jvk85321 דאָס

        סייַ ווי סייַ, לאָזן די ספּייסאַז צווישן די שורות, אַז ס וואָס איך האַס HTML, האַהאַהאַהאַ

  9.   וואַקין דאָס

    אויסגעצייכנט! איך קלאַפּ דיין פֿיס האַהאַ

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

    1.    Wada דאָס

      דאַנקען דיר פֿאַר דעם גייט פארביי ברודער, איך בין צופרידן אַז עס איז נוציק פֿאַר נוצן

      1.    וואַקין דאָס

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