Terminalo penktadienis: „Bash“ [raktų išplėtimas]

Pirmiausia norėčiau atsiprašyti, nes praėjusį penktadienį negalėjau parašyti įrašo, todėl šiandien pridėsiu papildomą, kad kompensuočiau prarastą dieną. 🙂

Petnešų išplėtimas

Ispanų kalba manau, kad plėtra yra įkvėpta funkcija C kriauklė, tai sukuria rašmenų, įvestų į petnešų vidų, derinius. Naudojama tvarka yra iš kairės į dešinę. Tai visai nesudėtinga, tačiau tai yra galimybė, kuri bus labai naudinga mūsų kelionėse po GNU / Linux.

pavyzdys:

$ aidas a {1,2,3} a1 a2 a3

Kai naudojamas su kableliais (,) generuoja vertės a ir petnešose esančių reikšmių derinius. Jei už raktų nebūtų jokios vertės, ji būtų rodoma tik po vieną reikšmę, kurią yra raktas.

$ echo {a, b, c} abc

Jo naudojimas visiškai nesudėtingas, yra ir kitų labiau paplitusių pavyzdžių, pavyzdžiui, daug katalogų sukūrimas aplanke

$ mkdir ~ / Darbas / {vienas, du, trys, keturi, penki}

Tai sukuria penkis aplankus užduočių aplanke, tai tarsi įveskite vieną komandą vienu metu. 5 katalogų kūrimas.

Yra plėtra dviem taškais .. taip sukuriama skaičių arba simbolių serija, kuri eina nuo pradinės vertės iki galutinės vertės, nenaudokite raidžių skaičių.

$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Neteisingas {a..5} # Manau, kad niekada negausiu įpratęs prie šios mėlynos spalvos raidėje

Sukurdami ciklą galime sutaupyti laiko forumas

# Užuot parašę $ už ((i = 1; i <= 5; i ++)); daryti atgarsį „Mano numeris $ i“; padarytas Mano numeris 1 Mano numeris 2 Mano numeris 3 Mano numeris 4 Mano numeris 5 # Išsaugokite kodą naudodami skliaustų išplėtimą. $ už i {1..5}; do echo "Mano numeris $ i; padaryta Mano numeris 1 Mano numeris 2 Mano numeris 3 Mano numeris 4 Mano numeris 5 # Žinoma, tai teisinga naudoti, nors išvestis skiriasi. $ echo" Mano numeris "{1..5} Mano numeris 1 Mano numeris 2 Mano numeris 3 Mano numeris 4 Mano numeris 5

Na, aš manau, kad koncepcija yra aiški, haha, dabar aš tik pakomentuosiu, kad ji yra derinama ir įdėta į vidų.
Sujungiamu būdu galime prisijungti prie vieno ar daugiau raktų

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

Sujungdami lizdą, kaip daugelis įsivaizduoja, galite naudoti išplėtimo raktus išplėtimo raktuose

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

Ir pagaliau iš Bash nieko galima padidinti vertes.

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

Visa tai skirta šiandienai, todėl ačiū, kad skaitėte man žmones 🙂

papildomai

Kaip sukurti vietinę šiukšliadėžę

Kai sakau a jusu siuksliu vietinis, turiu omenyje katalogą, kuriame turime savo scenarijus ir juos galima įvykdyti kaip paprastą komandą ...

Tai pasiekti yra gana lengva, pirmiausia turite sukurti katalogą, kuriame išsaugosime scenarijus.

mkdir ~ / .bin # Šiame pavyzdyje jis bus paslėptas

Dabar mes turime savo aplanką, norėdami išsaugoti scenarijus, tačiau jis neveiks, kol nepridėsime naujo .bin kelio į $ PATH
Tam failas yra redaguojamas bash_profilis, ir eilutė pridedama.

eksportuoti PATH = $ PATH: ~ / .bin

O voila pakanka sukurti vietinę šiukšliadėžę, žinoma, ji paprašys root teisių, jei reikia pavyzdžiui, kurį mes parašome greitą scenarijų.

#! / bin / bash aidas „Sveiki, $ 1, kaip tu?“

Išsaugokite jį naudodami Sveiki
Scenarijui suteikiamas vykdymo leidimas ir jo pakaks tik iškviesti iš terminalo

$ labas wada # Tai parodys pranešimą Sveiki wada, kaip tu?

Taigi naudodami šį greitą triuką galite greičiau paleisti scenarijus

Tai viskas šiandien žmonėms, kuriems viskas gerai 🙂
PS Atsiprašau už klaidas, jei jų yra, mano akys jau užsimerkia hahaha 😀


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   dunteris sakė

    Aš buvau „bash“ numeryje ilgą laiką ir nesu supratęs šių įtvarų išplėtimų, ačiū.

    Kelio gudrybėje Fedora pagal numatytuosius nustatymus daro kažką panašaus, bet aplanke „~ / .local / bin“ pažiūrėkite į fragmentą iš bash_profile, kurį atnešiau Jessie.

    PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
    eksporto kelias

    1.    ricardo sakė

      Turiu tam tikrų rūpesčių:
      1. Kaip priversti jį duoti du intervalus su plėtimu taškais; amžiaus {1..24,55..90} ir kad aš prailginu amžių nuo 1 iki 24 ir tęsiu nuo 55 iki devyniasdešimt. kaip aš tai padariau, neveikė. Kodėl?

      2. Jei noriu, kad pirmoji reikšmė būtų nulinė, ir tęskite numeraciją:
      wget: http://manga.favorito / vaizdas http://manga.favorito/imagen1
      Išbandžiau tokiu būdu, bet „wget“ negavau: http://manga.favorito/imagen{, 1..42} Pasak manęs, turėčiau palikti vardą be numerio ir tęsti numeraciją nuo 1 iki 42, bet tai nebuvo taip. Kodėl?

    2.    Wada sakė

      Jūs esate teisus, kai kurie distrai turi arba turėjo .bin, bet taip yra, kad visi suprastų ir pamatytų, jog tai galima padaryti bet kokiu distro: D, ačiū, kad užsukote.

  2.   Demo sakė

    Labai gerai, labai naudinga šiems žinių įnašams į „Linux“ pasaulį ir jo saugumą, tikiuosi, kad penktadienį galėsiu perskaityti, kaip formatuoti „pendrive“ terminale ir įrašyti bet kurios nemokamos sistemos „iso DVD / CD“ vaizdą terminale.

    1.    Wada sakė

      Ačiū už tavo žodžius brolis 😀 Pažadu, kad kitą penktadienį padarysiu tą įrašą. Aš turiu kalbėti apie „Vim“ pritaikymą hahaha, bet nenorėjau, kad jie manytų, kad tai apims tik „Vim“.

  3.   edoardo_arba sakė

    Puikus terminalo straipsnis, geriausias, kurį skaičiau per ilgą laiką, suskaičiavus kelis tinklaraščius, kuriuose skelbiamos šio stiliaus pamokos. Labai ačiū!!

    1.    Wada sakė

      Labai ačiū 😀 bandysiu neatsilikti.

  4.   juanli sakė

    Puikus vietos šiukšliadėžės patarimas!
    Sveiki atvykę!

    1.    Wada sakė

      Puiku, puiku, kad tai jums naudinga, labai ačiū už praeinantį brolį 😀

  5.   Giskardas sakė

    Labai gerai! Apie tai neįsivaizduojama. Ačiū 🙂

    1.    Wada sakė

      Sveiki, brolis, ačiū, kad skyrėte laiko jį perskaityti 😀

  6.   ricardo sakė

    Turiu tam tikrų rūpesčių:
    1. Kaip priversti jį duoti du intervalus su plėtimu taškais; amžiaus {1..24,55..90} ir kad aš prailginu amžių nuo 1 iki 24 ir tęsiu nuo 55 iki devyniasdešimt. kaip aš tai padariau, neveikė. Kodėl?

    2. Jei noriu, kad pirmoji reikšmė būtų nulinė, ir tęskite numeraciją:
    wget: http://manga.favorito/imagen http://manga.favorito/imagen1

    Išbandžiau tokiu būdu, bet „wget“ negavau: http://manga.favorito/imagen{, 1..42} Pasak manęs, turėčiau palikti vardą be numerio ir tęsti numeraciją nuo 1 iki 42, bet tai nebuvo taip. Kodėl?
    * Atsiprašau, bet aš įdėjau pirmąjį įrašą kaip atsakymą ir kai kuriose dalyse jis buvo neteisingas

    1.    Wada sakė

      1.- Jūsų logika neteisinga, jūs turite ją įdėti, hahaha pabandyti $ echo {{1..24},{55..90}}

      2. - Tas pats kaip ankstesnis ... $ echo "URL"{,{1..42}}

      Nesijaudink broli, mes esame čia, kad mums padėtų 🙂

  7.   jvk85321 sakė

    Tai pakeis „echo“, atrodys taip

    aidas „Mano numeris“ {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'

    bet man labiau patinka printf

    printf "Aš, aš% d \ n" {1..5}

    ir naudoti tą pačią rakto išplėtimo koncepciją

    Atte
    jvk85321

    1.    jvk85321 sakė

      Kaip įdėti gnybtų dėžutes ????

      Atte
      jvk85321

  8.   jvk85321 sakė

    Tikrinama, ar kodo žyma veikia
    jeje

    Tai pakeis „echo“, atrodys taip

    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}

    ir naudoti tą pačią rakto išplėtimo koncepciją

    Atte
    jvk85321

    1.    jvk85321 sakė

      Man liko keletas klaidų, bet tai pavyko

      Aš gyvas maluco

      Atsiprašau, kad vargau

      Atte
      jvk85321

      1.    Wada sakė

        Hahaha, jūs atsakėte patys, bet jei tai yra tarp etikečių nėra tarpų ...

        Jei pakeisite, nereikia atlikti tiek daug vamzdžių, kad:
        echo -e "Mi numero "{1..5}"\n\b"

        Jei atvirai, „printf“ yra geriausias būdas spausdinti tekstą scenarijuose, jis yra labiau nešiojamas, tačiau tradiciškai naudojamas aidas.

      2.    Wada sakė

        Aš užimu erdves! chahahahaha

        pažiūrėkime dabar 😀

      3.    Wada sakė

        Fuck jis yra "mažiau nei" kodas "didesnis nei" "mažiau nei" / kodas "didesnis nei" hahahaha

      4.    jvk85321 sakė

        Problema, kad echo -e nėra standartinė, todėl ji neveikia visose sistemose.

        Taip pat išeina netvarkingas
        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:~$
        Ir su tuo
        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:~$

        Manau, kad antrasis geriau pateikia rezultatą, hahaha

        Atte
        jvk85321

      5.    jvk85321 sakė

        Šios etiketės yra bummeris, hehehe, pažiūrėkime, ar jos dabar pasiteisins
        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:~$

        Ir su tuo
        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:~$

        Manau, kad antrasis geriau pateikia rezultatą, hahaha
        Atte
        jvk85321

      6.    jvk85321 sakė

        Bet kokiu atveju palikite tarpus tarp eilučių, todėl aš nekenčiu html, hahahaha

  9.   Joaquinas sakė

    Puiku! Ploju tau kojas haha

    Aš nežinojau, kad raktus galima įdėti į lizdą, nes taip pat niekada nebandžiau jais naudotis, tai tikrai sutaupo daug kodo ir taip yra lengviau įskaitomas tokiu būdu. Ačiū!

    1.    Wada sakė

      Ačiū jums už praeinantį brolį, džiaugiuosi, kad tai buvo naudinga utilidad

      1.    Joaquinas sakė

        Kviečiame, tam mes čia ir norime pasidalinti idėjomis ir prisidėti. Aš nežinau, kaip programuoti, aš tiesiog padariau keletą dalykų „Bash“ ir dviejuose įrašuose paskelbiau keletą scenarijų, kuriuos aš padariau. Manau, kad tai žinant, kodą bus lengviau suprasti.