Terminalni 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 dodatak da nadoknadim izgubljeni dan. 🙂

Proširenje aparatića

Na španjolskom jeziku čini mi se da je proširenje ključa funkcija inspirirana C Školjka, 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

Kad se koristi sa zarezima (,) generira kombinacije između vrijednosti a i vrijednosti unutar zagrada. Da nema vrijednosti izvan ključeva, prikazala bi se samo jednom svaka vrijednost koju ključ sadrži.

$ echo {a, b, c} abc

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

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

Ovo stvara pet mapa unutar mape poslova, to je poput unosa jedne naredbe odjednom. Izrada 5 direktorija.

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

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

Stvaranjem ciklusa možemo uštedjeti vrijeme za

# Umjesto pisanja $ for ((i = 1; i <= 5; i ++)); učiniti odjek "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 je kombiniran i ugniježđen.
Uz kombinirano da 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 Ništa 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 mi pročitali ljude 🙂

dodatni

Kako stvoriti lokalnu kantu

Kad kažem a kanta 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 će primjeru biti skriven

Sada imamo svoju mapu za spremanje skripti, ali neće raditi dok ne dodamo put novog .bin u $ PATH
Zbog toga se datoteka uređuje bash_profil, i dodaje se redak.

izvoz PUT = $ PUT: ~ / .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?"

Spremite ga s imenom bok
Skripti se daje odobrenje za izvršavanje i bit će dovoljno samo da je pozove s terminala

$ hello wada # Ovo će prikazati poruku Hello 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 Oprostite na greškama, ako postoje, oči mi se već zatvaraju hahaha 😀


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   dhunter dijo

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

    Na triku s putovima, Fedora prema zadanim postavkama čini 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 dijo

      Imam nekih nedoumica:
      1. Kako da ga natjeram da mi da dva intervala s proširenjem po točkama; dobi {1..24,55..90} i da proširim dob s 1 na 24 i nastavim s 55 na XNUMX. 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 bih prvo ime morao ostaviti bez broja i nastaviti s numeriranjem od 1 do 42, ali nije bilo tako. Zašto?

    2.    Wada dijo

      U pravu ste da neke distro distribucije 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 dijo

    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 sustava na terminalu.

    1.    Wada dijo

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

  3.   edoardo_or dijo

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

    1.    Wada dijo

      Puno vam hvala 😀 Pokušat ću ići u korak.

  4.   juanli dijo

    Izvrsni savjet lokalne kante!
    Pozdrav!

    1.    Wada dijo

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

  5.   giskard dijo

    Vrlo dobro! Nemam pojma o ovome. Hvala 🙂

    1.    Wada dijo

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

  6.   Ricardo dijo

    Imam nekih nedoumica:
    1. Kako da ga natjeram da mi da dva intervala s proširenjem po točkama; dobi {1..24,55..90} i da proširim dob s 1 na 24 i nastavim s 55 na XNUMX. 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 bih prvo ime morao ostaviti bez broja i nastaviti s numeriranjem od 1 do 42, ali nije bilo tako. Zašto?
    * Oprostite, ali prvi sam odgovor stavio kao odgovor i u nekim je dijelovima bio pogrešan

    1.    Wada dijo

      1.- Vaša je logika pogrešna, 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 dijo

    Zamjena for-a ehom izgledala bi ovako

    odjek "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 dijo

      Kako se stavljaju priključne kutije ????

      atte
      jvk85321

  8.   jvk85321 dijo

    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 dijo

      Preostale su mi neke bube, ali uspjelo je

      Živa sam maluco

      Oprosti na smetnji

      atte
      jvk85321

      1.    Wada dijo

        Hahaha i sami ste odgovorili ali ako je između etiketa bez razmaka ...

        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 ispisa teksta u skriptama, prenosiviji je, ali tradicionalno koristi odjek.

      2.    Wada dijo

        Uzimam prostore! hahahahaha

        da vidimo sada 😀

      3.    Wada dijo

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

      4.    jvk85321 dijo

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

        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 s 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 druga bolje predstavlja rezultat, hahaha

        atte
        jvk85321

      5.    jvk85321 dijo

        Te su naljepnice gadno, hehehe, da vidimo hoće li sad 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 s 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 druga bolje predstavlja rezultat, hahaha
        atte
        jvk85321

      6.    jvk85321 dijo

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

  9.   Joaquin dijo

    Izvrsno! Plješćem nogama haha

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

    1.    Wada dijo

      Zahvaljujem ti što si prošao brat, drago mi je što je bilo korisno utilidad

      1.    Joaquin dijo

        Nema na čemu, zato smo ovdje da dijelimo i doprinosimo idejama. Ne znam kako programirati, samo sam učinio nekoliko stvari u Bashu i u dva posta objavio neke skripte koje sam radio. Mislim da to može učiniti kôd lakšim za razumijevanje.