Terminalni petek: Bash [razširitev ključa]

Najprej bi se rad opravičil, ker prejšnji petek nisem mogel napisati prispevka, zato bom danes dodal še dodatka, da nadoknadim izgubljeni dan. 🙂

Razširitev naramnic

V španščini se mi zdi razširitev ključa funkcija, ki jo navdihuje C lupina, to ustvari kombinacije med znaki, ki so vneseni v oklepaje, vrstni red, ki ga uporablja, pa je od leve proti desni. Sploh ni zapleteno, je pa možnost, ki bo zelo koristna pri naših ogledih GNU / Linuxa.

Primer:

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

Kadar se uporablja z vejicami (,) generira kombinacije med vrednostjo a in vrednostmi v oklepajih. Če zunaj oklepajev ne bi bilo vrednosti, bi vsaka vrednost prikazala le enkrat.

$ echo {a, b, c} abc

Njegova uporaba sploh ni zapletena, obstajajo tudi drugi bolj pogosti primeri, kot je ustvarjanje številnih imenikov v mapi

$ mkdir ~ / Jobs / {ena, dve, tri, štiri, pet}

Tako se v mapi opravil ustvari pet map, to je kot vnos enega ukaza naenkrat. Ustvarjanje 5 imenikov.

Razširitev je za dve točki .. to ustvari niz številk ali znakov, ki gredo od začetne vrednosti do končne vrednosti, ne uporabljajte številk s črkami.

$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # Mislim, da nikoli ne bom dobil navajena na to modro barvo v pismu

Z ustvarjanjem cikla lahko prihranimo čas za

# Namesto pisanja $ for ((i = 1; i <= 5; i ++)); naredi echo "Moja številka $ i"; končano Moja številka 1 Moja številka 2 Moja številka 3 Moja številka 4 Moja številka 5 # Shrani kodo z razširitvijo oklepaja. $ za i v {1..5}; do echo "Moja številka $ i; done Moja številka 1 Moja številka 2 Moja številka 3 Moja številka 4 Moja številka 5 # Seveda je veljavna za uporabo, čeprav je izhod drugačen. $ echo" Moja številka "{1..5} Moja številka 1 Moja številka 2 Moja številka 3 Moja številka 4 Moja številka 5

No, mislim, da je koncept jasen, haha, zdaj bom le komentiral, da je združljiv in ugnezden. Kaj mislim s tem?
Z združljivim, da lahko združimo enega ali več ključev

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

Z gnezdenjem, kot bi si mnogi predstavljali, lahko uporabite razširitvene tipke znotraj razširitvenih tipk

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

In končno od Bash NIČ vrednosti je mogoče povečati.

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

To je vse za danes, zato hvala, ker ste me prebrali 🙂

extra

Kako ustvariti lokalni koš

Ko rečem a bin local mislim na imenik, v katerem imamo svoje skripte in jih je mogoče zagnati kot preprost ukaz ...

To je razmeroma enostavno, najprej morate ustvariti imenik, kamor bomo shranili skripte.

mkdir ~ / .bin # V tem primeru bo skrit

Zdaj imamo svojo mapo za shranjevanje skriptov, vendar ne bo delovala, dokler ne dodamo poti novega .bin v $ PATH
Za to je datoteka urejena bash_profil, in vrstica se doda.

izvoz POT = $ PATH: ~ / .bin

In voila, ki je dovolj za ustvarjanje lokalnega koša, bo seveda zahteval root dovoljenja, če bo potrebno, na primer napišemo hitri skript.

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

Shranite z imenom zdravo
Skriptu je dano dovoljenje za izvajanje in dovolj bo le, da ga pokličete s terminala

$ hello wada # Prikazalo se bo sporočilo Hello wada, kako si?

S tem hitrim trikom lahko hitreje zaženete svoje skripte

To je vse za današnje ljudi, ki so dobro 🙂
PS Oprostite za napake, če obstajajo, se mi oči že zapirajo hahaha 😀


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   dhunter je dejal

    Že dolgo sem v bash-u in nisem razumel teh razširitev nosilcev, hvala.

    Na triku poti Fedora privzeto naredi nekaj takega, toda v "~ / .local / bin" si oglejte delček iz bash_profile, ki sem ga prinesel Jessie.

    POT = $ PATH: $ HOME / .local / bin: $ HOME / bin
    izvozi POT

    1.    Ricardo je dejal

      Imam nekaj pomislekov:
      1. Kako naj dobim dva intervala s širjenjem po točkah; starosti {1..24,55..90} in razširiti starost z 1 na 24 in nadaljevati s 55 na devetdeset. kot sem storil, ni šlo. Zakaj?

      2. Če želim, da je prva vrednost nična, in nadaljujem s oštevilčenjem:
      wget: http://manga.favorito / slika http://manga.favorito/imagen1
      Poskusil sem na naslednji način, vendar wget ni dobil: http://manga.favorito/imagen{, 1..42} Po mojem mnenju bi moral ime pustiti brez številke in nadaljevati s oštevilčenjem od 1 do 42, vendar ni bilo tako. Zakaj?

    2.    Wada je dejal

      Prav imaš, nekateri distroji imajo ali so imeli .bin, vendar je tako, da lahko vsi razumejo in vidijo, da je to mogoče storiti v katerem koli distroju: D, hvala, da si se ustavil.

  2.   demo je dejal

    Zelo dobro zelo dobro za te prispevke znanja k svetu linuxa in njegovi varnosti, v petek upam, da bi lahko prebral, kako formatirati pendrive v terminalu in zapisati iso DVD / CD sliko katerega koli prostega sistema v terminalu.

    1.    Wada je dejal

      Hvala za vaše besede bratec. Obljubim, da bom prihodnji petek to objavil. In jaz moram nekaj o prilagoditvi Vima hahaha, vendar nisem hotel, da bi mislili, da bo zajemal le Vima.

  3.   edoardo_or je dejal

    Odličen terminalski članek, najboljši, ki sem ga že dolgo prebral, šteje več blogov, ki objavljajo vaje tega sloga. Najlepša hvala!!

    1.    Wada je dejal

      Najlepša hvala 😀 Poskušal bom nadaljevati.

  4.   juanli je dejal

    Odličen namig lokalnega koša!
    Lep pozdrav!

    1.    Wada je dejal

      Odlično, super, da je koristno za vas, najlepša hvala, ker ste šli mimo brata 😀

  5.   giskard je dejal

    Zelo dobro! Pojma o tem nimam. Hvala 🙂

    1.    Wada je dejal

      Dobrodošel brat, hvala, ker si si vzel čas za branje 😀

  6.   Ricardo je dejal

    Imam nekaj pomislekov:
    1. Kako naj dobim dva intervala s širjenjem po točkah; starosti {1..24,55..90} in razširiti starost z 1 na 24 in nadaljevati s 55 na devetdeset. kot sem storil, ni šlo. Zakaj?

    2. Če želim, da je prva vrednost nična, in nadaljujem s oštevilčenjem:
    wget: http://manga.favorito/imagen http://manga.favorito/imagen1

    Poskusil sem na naslednji način, vendar wget ni dobil: http://manga.favorito/imagen{, 1..42} Po mojem mnenju bi moral ime pustiti brez številke in nadaljevati s oštevilčenjem od 1 do 42, vendar ni bilo tako. Zakaj?
    * Oprostite, ampak kot odgovor sem dal prvo objavo, ki je bila v nekaterih delih napačna

    1.    Wada je dejal

      1. - Vaša logika je napačna, morate jo ugnezditi hahaha poskusite $ echo {{1..24},{55..90}}

      2. - Enako kot prejšnji ... $ echo "URL"{,{1..42}}

      Ne skrbi brate, tu smo, da nam pomagamo 🙂

  7.   jvk85321 je dejal

    Če bi for zamenjali z odmevom, bi to izgledalo takole

    echo "Moja številka" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'

    ampak raje printf

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

    in uporabite isti koncept razširitve ključa

    jasno Atte
    jvk85321

    1.    jvk85321 je dejal

      Kako postavim priključne omarice ????

      jasno Atte
      jvk85321

  8.   jvk85321 je dejal

    Preizkušanje, ali kodna oznaka deluje
    Hehe

    Če bi for zamenjali z odmevom, bi to izgledalo takole

    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}

    in uporabite isti koncept razširitve ključa

    jasno Atte
    jvk85321

    1.    jvk85321 je dejal

      Preostalo mi je nekaj napak, vendar je uspelo

      Živim maluco

      Oprostite za motenje

      jasno Atte
      jvk85321

      1.    Wada je dejal

        Hahaha, sam si odgovoril, pa če je med nalepkami brez presledkov ...

        In pri zamenjavi for ni treba narediti toliko cevi hahahaha dovolj z:
        echo -e "Mi numero "{1..5}"\n\b"

        Če sem iskren, je printf najboljši način za tiskanje besedila v skriptah, je bolj prenosljiv, vendar tradicionalno uporablja odmev.

      2.    Wada je dejal

        Vzamem prostore! hahahahaha

        poglejmo zdaj 😀

      3.    Wada je dejal

        Jebi ga, manj kot "koda" je večja od "manj kot" / koda "večja od" hahahaha

      4.    jvk85321 je dejal

        Težava, da echo -e ni standardna, zato ne deluje v vseh sistemih.

        Prihaja tudi grdo
        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:~$
        In s tem
        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

        jasno Atte
        jvk85321

      5.    jvk85321 je dejal

        Te nalepke so neprijetne, hehehe, poglejmo, ali se bodo zdaj obnesle
        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:~$

        In s tem
        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
        jasno Atte
        jvk85321

      6.    jvk85321 je dejal

        Kakorkoli, pusti presledke med vrsticami, zato sovražim html, hahahaha

  9.   Joaquin je dejal

    Odlično! Ploskam po nogah haha

    Nisem vedel, da lahko ključe gnezdijo, saj jih tudi nikoli nisem poskušal uporabiti, res prihrani veliko kode in je tudi bolj berljiv na ta način. Hvala vam!

    1.    Wada je dejal

      Zahvaljujem se vam za mimogrede, brat, vesel sem, da je bilo koristno

      1.    Joaquin je dejal

        Vabljeni, zato smo tu, da lahko delimo in prispevamo ideje. Ne vem, kako programirati, v Bashu sem naredil le nekaj stvari in v dveh objavah objavil nekaj scenarijev, ki sem jih naredil. Mislim, da lahko to vedo olajša razumevanje kode.