Terminal petak: Bash [proširenje ključa]

Prije svega, želio bih se ispričati, jer prošli petak nisam mogao napisati post, pa ću danas dodati dodatka da nadoknadim izgubljeni dan. 🙂

Brace Expansion

Na španskom jeziku čini mi se da je proširenje ključa funkcija inspirisana c-ljuska, ovo generira kombinacije između znakova koji se unose unutar zagrada, redoslijed koji koristi je slijeva udesno. Nije uopće komplicirano, ali to je opcija koja će biti vrlo korisna u našim obilascima GNU / Linuxa.

Primjer:

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

Kada se koristi sa zarezima (,) generira kombinacije između vrijednosti a i vrijednosti unutar zagrada. Da nema vrijednosti izvan zagrada, to bi samo jednom prikazalo svaku vrijednost koju sadrži ključ.

$ echo {a, b, c} abc

Njegova upotreba uopće nije složena, postoje i drugi češći primjeri poput stvaranja mnogih direktorija u mapi

$ mkdir ~ / Poslovi / {jedan, dva, tri, četiri, pet}

Ovo stvara pet mapa unutar mape poslova, to je kao da unosite jednu po jednu naredbu. Izrada 5 direktorija.

Postoje dva proširenja .. ovo stvara niz brojeva ili znakova koji idu od početne do konačne vrijednosti, nemojte koristiti brojeve sa slovima.

$ echo {1..5} # Ispravno 1 2 3 4 5 $ echo {a..f} # Ispravno abcdf $ echo {a..5} # Neispravno {a..5} # Mislim da nikada neću dobiti naviknuta na ovu plavu boju u pismu

Stvaranjem ciklusa možemo uštedjeti vrijeme za

# Umjesto pisanja $ for ((i = 1; i <= 5; i ++)); odjeknite "Moj broj $ i"; gotovo Moj broj 1 Moj broj 2 Moj broj 3 Moj broj 4 Moj broj 5 # Spremi kôd pomoću proširenja zagrade. $ za i za {1..5}; do echo "Moj broj $ i; gotovo Moj broj 1 Moj broj 2 Moj broj 3 Moj broj 4 Moj broj 5 #Naravno da je valjano koristiti iako su izlazi različiti. $ echo" Moj broj "{1..5} Moj broj 1 Moj broj 2 Moj broj 3 Moj broj 4 Moj broj 5

Pa mislim da je koncept jasan, haha, sad ću samo komentirati da se može kombinirati i ugniježditi.Što pod tim mislim?
Pomoću kombiniranog možemo pridružiti jedan ili više ključeva

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

S gniježđenjem, kako bi mnogi zamislili, možete koristiti ključeve za proširenje unutar ključeva za proširenje

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

I konačno od bash 4 moguće je povećati vrijednosti.

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

Ovo je sve za danas, pa hvala što ste me pročitali 🙂

ekstra

Kako stvoriti lokalnu kantu

Kad kažem a am local mislim na direktorij u kojem imamo vlastite skripte i moguće ih je izvršiti kao jednostavnu naredbu ...

To je relativno lako postići, prvo što morate učiniti je stvoriti direktorij u koji ćemo spremiti skripte.

mkdir ~ / .bin # U ovom primjeru će biti skriven

Sada imamo našu mapu za spremanje skripti, ali ona neće raditi dok ne dodamo putanju novog .bin u $ PATH
Zbog toga se datoteka uređuje bash_profilei dodaje se redak.

izvoz PATH = $ PATH: ~ / .bin

A voila je to dovoljno za stvaranje lokalne kante, naravno da će tražiti root dozvole ako je potrebno, za primjer napišemo brzu skriptu.

#! / bin / bash echo "Bok $ 1, kako si?"

Sačuvajte ga sa imenom hola
Skriptu se daje odobrenje za izvršenje i bit će dovoljno samo da je pozove s terminala

$ hello wada #Ovo će prikazati poruku Zdravo wada, kako si?

Tako ovim brzim trikom možete brže pokretati svoje skripte

To je sve za današnje ljude koji su dobro 🙂
PS Izvinite na greškama, ako ih ima, oči mi se već zatvaraju hahaha 😀


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   dhunter rekao je

    Dugo sam u bash izdanju i nisam razumio ovo proširenje aparatića, hvala.

    Na triku puta, Fedora po defaultu radi nešto slično, ali u "~ / .local / bin" pogledajte isječak iz bash_profile koji sam donio Jessie.

    PUT = $ PATH: $ HOME / .local / bin: $ HOME / bin
    izvoz PUT

    1.    Ricardo rekao je

      Imam nekih nedoumica:
      1. Kako da ga natjeram da mi da dva intervala sa proširenjem po bodovima; uzrasta {1..24,55..90} i proširiti uzrast sa 1 na 24 i nastaviti sa 55 na devedeset. kao što sam učinio nije uspjelo. Zašto?

      2. Ako želim da prva vrijednost bude nula i nastavim s numeriranjem:
      wget: http://manga.favorito / slika http://manga.favorito/imagen1
      Pokušao sam na sljedeći način, ali wget nije dobio: http://manga.favorito/imagen{, 1..42} Po meni, ime bih morao ostaviti bez broja i nastaviti s numeriranjem od 1 do 42, ali nije bilo tako. Zašto?

    2.    Wada rekao je

      U pravu ste da neke distro distrikcije imaju ili imaju .bin, ali to je tako da svi mogu razumjeti i vidjeti da je to moguće učiniti u bilo kojoj distro distribuciji: D, hvala što ste navratili.

  2.   demo rekao je

    Vrlo dobro, vrlo dobro za ovaj doprinos znanja svijetu linuxa i njegovoj sigurnosti, nadam se da bih mogao u petak pročitati kako formatirati klatno u terminalu i snimiti iso DVD / CD sliku bilo kojeg slobodnog sistema na terminalu.

    1.    Wada rekao je

      Hvala na tvojim riječima brate 😀 Obećavam da ću sljedeći petak obaviti taj post. Moram reći nešto o prilagođavanju Vima, hahaha, ali nisam želio da misle da će to pokrivati ​​samo Vima.

  3.   edoardo_or rekao je

    Odličan članak o terminalu, najbolji koji sam već dugo čitao, računajući nekoliko blogova koji objavljuju tutorijale ovog stila. Hvala puno!!

    1.    Wada rekao je

      Puno vam hvala 😀 Trudiću se da nastavim.

  4.   Juanli rekao je

    Odličan savjet lokalne kante!
    Pozdrav!

    1.    Wada rekao je

      Izvrsno, sjajno što vam je korisno, puno vam hvala što ste prosli brata 😀

  5.   giskard rekao je

    Veoma dobro! Nemam pojma o ovome. Hvala 🙂

    1.    Wada rekao je

      Nema na čemu, brate, hvala ti što si odvojio vrijeme za čitanje 😀

  6.   Ricardo rekao je

    Imam nekih nedoumica:
    1. Kako da ga natjeram da mi da dva intervala sa proširenjem po bodovima; uzrasta {1..24,55..90} i proširiti uzrast sa 1 na 24 i nastaviti sa 55 na devedeset. kao što sam učinio nije uspjelo. Zašto?

    2. Ako želim da prva vrijednost bude nula i nastavim s numeriranjem:
    wget: http://manga.favorito/imagen http://manga.favorito/imagen1

    Pokušao sam na sljedeći način, ali wget nije dobio: http://manga.favorito/imagen{, 1..42} Po meni, ime bih morao ostaviti bez broja i nastaviti s numeriranjem od 1 do 42, ali nije bilo tako. Zašto?
    * Oprostite, ali prvi odgovor sam stavio kao odgovor i u nekim je dijelovima bio pogrešan

    1.    Wada rekao je

      1.- Vaša logika nije u redu, morate je ugnijezditi hahaha pokušajte $ echo {{1..24},{55..90}}

      2.- Isto kao i prethodni ... $ echo "URL"{,{1..42}}

      Ne brini brate, ovdje smo da nam pomognemo 🙂

  7.   jvk85321 rekao je

    Zamjena for-a ehom izgledala bi ovako

    odjekni "Moj broj" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'

    ali više volim printf

    printf "Ja, Ja% d \ n" {1..5}

    i koristiti isti koncept proširenja ključa

    atte
    jvk85321

    1.    jvk85321 rekao je

      Kako se stavljaju priključne kutije ????

      atte
      jvk85321

  8.   jvk85321 rekao je

    Testiranje funkcionira li oznaka koda
    hehe

    Zamjena for-a ehom izgledala bi ovako

    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}

    i koristiti isti koncept proširenja ključa

    atte
    jvk85321

    1.    jvk85321 rekao je

      Preostalo mi je nekih grešaka, ali uspjelo je

      Živim maluco

      Izvinite što smetam

      atte
      jvk85321

      1.    Wada rekao je

        Hahaha i sami ste odgovorili ali ako je između etiketa nema prostora ...

        A na zamjeni for nije potrebno napraviti toliko cijevi hahahaha dovoljno sa:
        echo -e "Mi numero "{1..5}"\n\b"

        Iskreno govoreći, printf je najbolji način za ispis teksta u skriptama, on je prenosiviji, ali tradicionalno koristi eho.

      2.    Wada rekao je

        Uzimam prostore! hahahahaha

        da vidimo sada 😀

      3.    Wada rekao je

        Jebote, to je "manje od" koda "veće od" "manje od" / koda "veće od" hahahaha

      4.    jvk85321 rekao je

        Problem što echo -e nije standardan, pa ne radi na svim sistemima.

        Također izlazi neuredno
        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:~$
        I sa ovim
        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:~$

        Mislim da drugi bolje predstavlja rezultat, hahaha

        atte
        jvk85321

      5.    jvk85321 rekao je

        Ove naljepnice su grozno, ha, hajde da vidimo hoće li sada uspjeti
        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:~$

        I sa ovim
        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:~$

        Mislim da drugi bolje predstavlja rezultat, hahaha
        atte
        jvk85321

      6.    jvk85321 rekao je

        U svakom slučaju, ostavite razmake između redova, zato mrzim html, hahahaha

  9.   Joaquin rekao je

    Odlicno! Plješćem ti po nogama haha

    Nisam znao da se ključevi mogu ugnijezditi, jer ih nikada nisam ni pokušao koristiti, stvarno štedi puno koda, a i čitljiviji je na ovaj način. Hvala ti!

    1.    Wada rekao je

      Zahvaljujem vam na prolasku, brate, drago mi je što je bilo korisno

      1.    Joaquin rekao je

        Nema na čemu, zbog toga smo ovdje da dijelimo i doprinosimo idejama. Ne znam kako programirati, samo sam uradio nekoliko stvari u Bashu i objavio u dva posta neke skripte koje sam radio. Mislim da ovo može olakšati razumijevanje koda.