E Premtja Terminale: Bash [Zgjerimi i Çelësit]

Së pari do të doja të kërkoja falje, pasi që të Premten e kaluar nuk mund të shkruaja postimin kështu që sot do të shtoj një shtesë për të kompensuar ditën e humbur. 🙂

Zgjerimi i mbajtëses

Në Spanjisht, zgjerimi i çelësit më duket se është një funksion i frymëzuar nga c-guaskë, kjo gjeneron kombinime midis karaktereve që futen brenda kllapave, renditja që përdor është nga e majta në të djathtë. Nuk është aspak i ndërlikuar, por është një opsion që do të jetë shumë i dobishëm në turnet tona të GNU / Linux.

Shembull:

$ jehonë një {1,2,3} a1 a2 a3

Kur përdoret me presje (,) gjeneron kombinime midis vlerës a dhe vlerave brenda bazamenteve. Nëse nuk do të kishte asnjë vlerë jashtë çelësave, ajo do të tregonte vetëm një herë çdo vlerë që përmban çelësi.

$ echo {a, b, c} abc

Përdorimi i tij nuk është aspak kompleks, ka shembuj të tjerë më të zakonshëm siç është krijimi i shumë direktorive në një dosje

$ mkdir ~ / Punë / {një, dy, tre, katër, pesë}

Kjo krijon pesë dosje brenda dosjes së punëve, është si të futni një komandë në të njëjtën kohë. Krijimi i 5 direktorive.

Ka zgjerim me dy pika .. Kjo krijon një seri numrash ose karakteresh që kalojnë nga vlera fillestare në vlerën përfundimtare, nuk përdorin numra me shkronja.

$ echo {1..5} #Korrekt 1 2 3 4 5 $ echo {a..f} #Korrekt abcdf $ echo {a..5} # I pasaktë {a..5} # Mendoj se nuk do të marr kurrë përdoret për këtë ngjyrë blu me shkronjë

Ne mund të kursejmë kohë duke krijuar një cikël për

# Në vend që të shkruaj $ për ((i = 1; i <= 5; i ++)); bëj jehonë "Numri im $ i"; bërë Numri im 1 Numri im 2 Numri im 3 Numri im 4 Numri im 5 # Ruaj kodin duke përdorur zgjerimin e mbajtëses. $ për i në {1..5}; bëj jehonë "Numri im $ i; bërë numri im 1 Numri im 2 3 Numri im 4 Numri im 5 Numri im 1 # Sigurisht që është e vlefshme të përdoret edhe pse rezultati është i ndryshëm. $ echo" Numri im "{5..1} Numri im 2 Numri im 3 Numri im 4 Numri im 5 Numri im XNUMX

Epo mendoj se koncepti është i qartë, haha ​​tani unë vetëm do të komentoj se është i kombinueshëm dhe i vendosur. Çfarë dua të them me këtë?
Me të kombinueshëm me të cilin mund të bashkojmë një ose më shumë çelësa

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

Me fole, siç do të imagjinonin shumë mund të përdorni çelësat e zgjerimit brenda çelësave të zgjerimit

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

Dhe së fundmi nga bash 4 është e mundur të rriten vlerat.

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

Kjo është e gjitha për sot, prandaj faleminderit që më lexuat njerëz

shtesë

Si të krijoni një kosh lokal

Kur them një bin lokale Unë dua të them një direktori në të cilën ne kemi skriptet tona dhe është e mundur t'i ekzekutojmë ato si një komandë e thjeshtë ...

Arritja e kësaj është relativisht e lehtë, gjëja e parë që duhet bërë është krijimi i një direktorie ku do të ruajmë skriptet.

mkdir ~ / .bin # Në këtë shembull do të fshihet

Tani kemi dosjen tonë për të ruajtur skriptet por nuk do të funksionojë derisa të shtojmë shtegun e ri .bin tek $ PATH
Për këtë skedari është redaktuar profili bash_, dhe rreshti shtohet.

Rruga e eksportit = $ PATH: ~ / .bin

Dhe voila që është e mjaftueshme për të krijuar një shportë lokale, natyrisht që do të kërkojë leje rrënjësore nëse është e nevojshme për një shembull që shkruajmë një skenar të shpejtë.

Jehona #! / bin / bash "Përshëndetje $ 1, si jeni?"

Ruajeni me emrin e hola
Skriptit i jepet leja e ekzekutimit dhe do të jetë e mjaftueshme vetëm për ta thirrur atë nga terminali

$ hello wada # Kjo do të tregojë mesazhin Përshëndetje wada, si jeni?

Pra, me këtë hile të shpejtë ju mund të ekzekutoni skriptet tuaja më shpejt

Kjo është e gjitha për njerëzit sot që janë mirë
PS Na vjen keq për gabimet nëse ka, sytë tashmë po më mbyllen hahaha


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   dhunues dijo

    Unë kam qenë në çështjen bash për një kohë të gjatë dhe nuk i kisha kuptuar zgjerimet e bazave të tyre, faleminderit.

    Në lidhje me mashtrimin e rrugës, Fedora si parazgjedhje bën diçka të tillë, por në "~ / .local / bin", shiko një copë nga bash_profile që unë i solla Jessie.

    PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
    Rruga e eksportit

    1.    Ricardo dijo

      Kam disa shqetësime:
      1. Si mund ta bëj që ai të më japë dy intervale me zgjerim për pikë; moshat {1..24,55..90} dhe që unë zgjeroj moshat nga 1 në 24 dhe vazhdoj me 55 deri në nëntëdhjetë. ashtu si veprova nuk funksionoi. Pse

      2. Nëse dua që vlera e parë të jetë nul dhe të vazhdoj me numërimin:
      wget: http://manga.favorito / imazhi http://manga.favorito/imagen1
      Kam provuar mënyrën e mëposhtme, por wget nuk e kam marrë: http://manga.favorito/imagen{, 1..42} Sipas meje, do të më duhej ta lija emrin pa numër dhe të vazhdoja me numërimin nga 1 në 42 por nuk ishte kështu. Pse

    2.    Wada dijo

      Keni të drejtë që disa distro kanë ose kanë një .bin por kjo është në mënyrë që të gjithë ta kuptojnë dhe të shohin se është e mundur ta bëni në çdo distro: D, Faleminderit që u ndalët.

  2.   demo dijo

    Shumë mirë shumë e mirë për këto kontribute të njohurive në botën e linux-it dhe sigurinë e saj, disa të premte shpresoj të mund të lexoj se si të formatoj një pendrive në një terminal dhe të digjem një imazh ISO DVD / CD të ndonjë sistemi falas në një terminal.

    1.    Wada dijo

      Faleminderit për fjalët e tua vëlla ... Unë premtoj që të Premten e ardhshme do ta bëj atë postim. Dhe unë duhet të flas për personalizimin e Vim-it hahaha por nuk doja që ata të mendonin se do të përfshinte vetëm Vim-in.

  3.   edoardo_ose dijo

    Artikull i shkëlqyeshëm terminal, më i miri që kam lexuar për një kohë të gjatë, duke numëruar disa bloge që botojnë udhëzime të këtij stili. Faleminderit shume!!

    1.    Wada dijo

      Faleminderit shumë 😀 Do të përpiqem të vazhdoj.

  4.   juanli dijo

    Këshillë e shkëlqyeshme e shportës lokale!
    Përshëndetje!

    1.    Wada dijo

      E shkëlqyeshme, e shkëlqyeshme që është e dobishme për ju, faleminderit shumë për vëllain që kaluat

  5.   giskard dijo

    Shume mire! Asnjë ide në lidhje me këtë. Faleminderit

    1.    Wada dijo

      Ju mirepresim vella faleminderit qe gjetem kohe per ta lexuar

  6.   Ricardo dijo

    Kam disa shqetësime:
    1. Si mund ta bëj që ai të më japë dy intervale me zgjerim për pikë; moshat {1..24,55..90} dhe që unë zgjeroj moshat nga 1 në 24 dhe vazhdoj me 55 deri në nëntëdhjetë. ashtu si veprova nuk funksionoi. Pse

    2. Nëse dua që vlera e parë të jetë nul dhe të vazhdoj me numërimin:
    wget: http://manga.favorito/imagen http://manga.favorito/imagen1

    Kam provuar mënyrën e mëposhtme, por wget nuk e kam marrë: http://manga.favorito/imagen{, 1..42} Sipas meje, do të më duhej ta lija emrin pa numër dhe të vazhdoja me numërimin nga 1 në 42 por nuk ishte kështu. Pse
    * Na vjen keq por e vura postimin e parë si përgjigje dhe ishte e gabuar në disa pjesë

    1.    Wada dijo

      1.- Logjika juaj është e gabuar ju duhet ta vendosni atë hahaha provoni me të $ echo {{1..24},{55..90}}

      2.- Njësoj si ai i mëparshmi ... $ echo "URL"{,{1..42}}

      Mos u shqetëso vëlla, ne jemi këtu për të na ndihmuar

  7.   jvk85321 dijo

    Për të zëvendësuar for me echo do të dukej kështu

    jehona "Numri im" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'

    por preferoj printf

    printf "Unë, I% d \ n" {1..5}

    dhe të përdorin të njëjtin koncept të zgjerimit të çelësit

    Atte
    jvk85321

    1.    jvk85321 dijo

      Si i vendosni kutitë e terminalit ????

      Atte
      jvk85321

  8.   jvk85321 dijo

    Testimi nëse funksionon etiketimi i kodit
    Jeje

    Për të zëvendësuar for me echo do të dukej kështu

    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}

    dhe të përdorin të njëjtin koncept të zgjerimit të çelësit

    Atte
    jvk85321

    1.    jvk85321 dijo

      Unë kam mbetur me disa mete, por ajo ka punuar

      Unë jetoj maluco

      Më vjen keq për shqetësimin

      Atte
      jvk85321

      1.    Wada dijo

        Hahaha i përgjigjeshe vetes por nëse është midis etiketave nuk ka hapësira ...

        Dhe në zëvendësimin e for nuk është e nevojshme të bëhet aq shumë tub hahahaha mjaftueshëm me:
        echo -e "Mi numero "{1..5}"\n\b"

        Të jem i sinqertë printf është mënyra më e mirë për të shtypur tekst në skripte, është më e lëvizshme por tradicionalisht përdor jehonë.

      2.    Wada dijo

        Unë marr hapësirat! hahahahaha

        le të shohim tani

      3.    Wada dijo

        Qij është "më pak se" kodi "më i madh se" "më pak se" / kodi "më i madh se" hahahaha

      4.    jvk85321 dijo

        Problemi që echo -e nuk është standard, prandaj nuk funksionon në të gjitha sistemet.

        Gjithashtu del i çrregullt
        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:~$
        Dhe me këtë
        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:~$

        Mendoj se e dyta e paraqet rezultatin më mirë, hahaha

        Atte
        jvk85321

      5.    jvk85321 dijo

        Këto etiketa janë një gabim, hehehe, le të shohim nëse funksionojnë tani
        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:~$

        Dhe me këtë
        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:~$

        Mendoj se e dyta e paraqet rezultatin më mirë, hahaha
        Atte
        jvk85321

      6.    jvk85321 dijo

        Gjithsesi, lini hapësirat midis rreshtave, prandaj e urrej html, hahahaha

  9.   Joaquin dijo

    Shkëlqyeshëm! Ju përplas këmbët haha

    Nuk e dija që çelësat mund të vendoseshin, pasi që asnjëherë nuk u përpoqa t'i përdorja ato, me të vërtetë kursen shumë kod dhe është gjithashtu më i lexueshëm në këtë mënyrë. Faleminderit!

    1.    Wada dijo

      Faleminderit për vëllain që kalove, jam i lumtur që ishte i dobishëm

      1.    Joaquin dijo

        Jeni të mirëpritur, për këtë jemi këtu, për të ndarë dhe kontribuar me ide. Nuk di si të programoj, thjesht bëra disa gjëra në Bash dhe botova në dy postime disa skenare që bëra. Unë mendoj se njohja e kësaj mund ta bëjë kodin më të lehtë për t'u kuptuar.