Terminaalin perjantai: Bash [avaimen laajennus]

Ensinnäkin haluaisin pyytää anteeksi, koska viime perjantaina en voinut kirjoittaa viestiä, joten tänään lisätään ylimääräinen korvaamaan kadonneen päivän. 🙂

Ahdinlaajennus

Espanjassa avainlaajennus näyttää minusta olevan innoittamana toiminto C Kuori, tämä luo yhdistelmiä aaltosulkeissa syötettyjen merkkien välillä, sen käyttämä järjestys on vasemmalta oikealle. Se ei ole lainkaan monimutkainen, mutta se on vaihtoehto, joka on erittäin hyödyllinen GNU / Linux-kiertueillamme.

esimerkiksi:

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

Kun käytetään pilkkuja (,) luo yhdistelmiä arvon a ja aaltosulkeissa olevien arvojen välillä. Jos avainten ulkopuolella ei ole arvoa, se näytetään vain kerran jokainen arvo, jonka avain sisältää.

$ echo {a, b, c} abc

Sen käyttö ei ole lainkaan monimutkaista, on muitakin yleisempiä esimerkkejä, kuten useiden hakemistojen luominen kansioon

$ mkdir ~ / Työpaikat / {yksi, kaksi, kolme, neljä, viisi}

Tämä luo viisi kansiota työkansioon, se on kuin syötettäisiin yksi komento kerrallaan. Viiden hakemiston luominen.

Laajentuminen tapahtuu kahdella pisteellä .. Tämä luo sarjan numeroita tai merkkejä, jotka siirtyvät alkuperäisestä arvosta lopulliseen arvoon, älä käytä numeroita kirjaimilla.

$ echo {1..5} #Oikea 1 2 3 4 5 $ echo {a..f} #Oikea abcdf $ echo {a..5} #Väärä {a..5} # Mielestäni en koskaan saa tottunut tähän kirjeen siniseen väriin

Voimme säästää aikaa luomalla syklin varten

# Sen sijaan, että kirjoitat $ ((i = 1; i <= 5; i ++)): lle; tee kaiku "Oma numero $ i"; valmis Oma numero 1 Oma numero 2 Oma numero 3 Oma numero 4 Oma numero 5 #Tallenna koodi käyttämällä aaltosulkeinta. $ for i kohdassa {1..5}; do echo "Oma numero $ i; valmis Oma numero 1 Oma numero 2 Oma numero 3 Oma numero 4 Oma numero 5 #Tietysti on kelvollinen käyttää, vaikka lähtö on erilainen. $ echo" Oma numero "{1..5} Oma numero 1 Oma numero 2 Oma numero 3 Oma numero 4 Oma numero 5

Luulen, että käsite on selkeä, haha ​​kommentoin vain, että se on yhdistettävissä ja sisäkkäin.Mitä tarkoitan tällä?
Yhdistettävissä, että voimme liittää yhden tai useamman avaimen

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

Pesimisen aikana, kuten monet kuvittelevat, voit käyttää laajennusavaimia laajennusavainten sisällä

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

Ja lopulta Bash EI MITÄÄN arvoja on mahdollista nostaa.

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

Tämä on kaikki tänään, joten kiitos, kun lukit minulle ihmisiä 🙂

Lisää

Paikallisen roskakorin luominen

Kun sanon a astia paikallinen tarkoitan hakemistoa, jossa meillä on omat komentosarjamme ja ne on mahdollista suorittaa yksinkertaisella komennolla ...

Tämän saavuttaminen on suhteellisen helppoa, sinun on ensin luotava hakemisto, johon tallennamme komentosarjat.

mkdir ~ / .bin # Tässä esimerkissä se piilotetaan

Nyt meillä on kansiomme skriptien tallentamiseksi, mutta se ei toimi, ennen kuin lisätään uuden .bin polku tiedostoon $ PATH
Tätä varten tiedostoa muokataan bash_profiili, ja rivi lisätään.

vie PATH = $ PATH: ~ / .bin

Ja voila, joka riittää paikallisen lokeron luomiseen, tietysti se pyytää pääkäyttöoikeuksia tarvittaessa pikakoodin kirjoittamiseen.

#! / bin / bash kaiku "Hei $ 1, kuinka voit?"

Tallenna se nimellä hei
Skriptille annetaan suorituslupa, ja se riittää vain soittamaan sille päätelaitteesta

$ hei wada #Tässä näkyy viesti Hei wada, kuinka voit?

Joten tällä nopealla temppulla voit suorittaa komentosarjat nopeammin

Se on kaikki nykypäivän ihmisille, jotka ovat hyvin 🙂
PS Anteeksi virheistä, jos on, silmäni ovat jo kiinni hahaha 😀


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   metsästäjä dijo

    Olen ollut bash-kysymyksessä pitkään, enkä ollut ymmärtänyt näitä ahdinlaajennuksia, kiitos.

    Polkutempussa Fedora tekee oletuksena jotain tällaista, mutta "~ / .local / bin" -kohdassa, katso katkelma bash_profile-tiedostosta, jonka toin Jessielle.

    PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
    viedä PATH

    1.    Ricardo dijo

      Minulla on joitain huolenaiheita:
      1. Kuinka saan hänet antamaan minulle kaksi aikaväliä pisteillä laajenemalla; ikä {1..24,55..90} ja että laajennan ikää 1: stä 24: een ja jatkan 55: stä yhdeksänkymmeneen. kuten tein, se ei toiminut. Miksi?

      2. Jos haluan ensimmäisen arvon olevan nolla ja jatkan numerointia:
      wget: http://manga.favorito /kuva http://manga.favorito/imagen1
      Yritin seuraavalla tavalla, mutta wget ei saanut: http://manga.favorito/imagen{, 1..42} Minun on pakko jättää etunimi ilman numeroa ja jatkaa numeroinnilla 1: stä 42: een, mutta se ei ollut sellainen. Miksi?

    2.    Wada dijo

      Olet oikeassa joillakin distroilla on tai on ollut .bin, mutta se on niin, että kaikki voivat ymmärtää ja nähdä, että se on mahdollista tehdä missä tahansa distrossa: D, kiitos, että pysähdyit.

  2.   esittely dijo

    Erittäin hyvä, erittäin hyvä näille Linux-maailmaan ja sen turvallisuuteen liittyville tiedoille, jonain perjantaina toivon voivani lukea kuinka alustaa pendrive päätelaitteessa ja polttaa iso DVD / CD-kuva mistä tahansa ilmaisesta järjestelmästä päätelaitteessa.

    1.    Wada dijo

      Kiitos sanoistasi veli 😀 Lupaan, että ensi perjantaina teen sen. Ja minun on tehtävä yksi Vimin mukauttamisesta hahaha, mutta en halunnut heidän ajattelevan, että se kattaisi vain Vimin.

  3.   edoardo_or dijo

    Erinomainen pääartikkeli, paras, jonka olen lukenut pitkään aikaan, lukemalla useita blogeja, jotka julkaisevat tämän tyyppisiä opetusohjelmia. Kiitos paljon!!

    1.    Wada dijo

      Paljon kiitoksia 😀 Yritän pysyä mukana.

  4.   juanli dijo

    Erinomainen paikallisen lokeron vinkki!
    Tervehdys!

    1.    Wada dijo

      Erinomainen, hienoa, että siitä on sinulle hyötyä, kiitos paljon ohittaneesta veljestäsi 😀

  5.   Giskard dijo

    Oikein hyvä! Ei aavistustakaan tästä. Kiitos 🙂

    1.    Wada dijo

      Olet tervetullut veli, kiitos kiitoksestasi sen lukemiselle

  6.   Ricardo dijo

    Minulla on joitain huolenaiheita:
    1. Kuinka saan hänet antamaan minulle kaksi aikaväliä pisteillä laajenemalla; ikä {1..24,55..90} ja että laajennan ikää 1: stä 24: een ja jatkan 55: stä yhdeksänkymmeneen. kuten tein, se ei toiminut. Miksi?

    2. Jos haluan ensimmäisen arvon olevan nolla ja jatkan numerointia:
    wget: http://manga.favorito/imagen http://manga.favorito/imagen1

    Yritin seuraavalla tavalla, mutta wget ei saanut: http://manga.favorito/imagen{, 1..42} Minun on pakko jättää etunimi ilman numeroa ja jatkaa numeroinnilla 1: stä 42: een, mutta se ei ollut sellainen. Miksi?
    * Anteeksi, mutta laitoin ensimmäisen viestin vastaukseksi ja se oli väärä joissakin osissa

    1.    Wada dijo

      1.- Logiikkasi on väärä, sinun täytyy pestä se hahaha yrittää $ echo {{1..24},{55..90}}

      2.- Sama kuin edellinen ... $ echo "URL"{,{1..42}}

      Älä huoli veli, olemme täällä auttaaksemme meitä 🙂

  7.   jvk85321 dijo

    Korvaa for kaiku näyttää se tältä

    kaiku "Oma numero" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'

    mutta mieluummin printf

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

    ja käytä samaa avainlaajennuksen käsitettä

    Atte
    jvk85321

    1.    jvk85321 dijo

      Kuinka laitat liitäntäkotelot ????

      Atte
      jvk85321

  8.   jvk85321 dijo

    Testataan, toimiiko kooditunniste
    hehe

    Korvaa for kaiku näyttää se tältä

    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}

    ja käytä samaa avainlaajennuksen käsitettä

    Atte
    jvk85321

    1.    jvk85321 dijo

      Minulle on jäänyt joitain vikoja, mutta se toimi

      Asun malucossa

      Anteeksi että häiritsen

      Atte
      jvk85321

      1.    Wada dijo

        Hahaha vastasit itse, mutta jos se on tarrojen välissä ei välejä ...

        Ja korvaamisen vuoksi ei ole tarpeen tehdä niin paljon putkea hahahaha tarpeeksi:
        echo -e "Mi numero "{1..5}"\n\b"

        Ollakseni rehellinen, printf on paras tapa tulostaa tekstiä skripteinä, se on kannettavampi, mutta perinteisesti käyttää kaikua.

      2.    Wada dijo

        Otan tilat! hahahahaha

        katsotaan nyt 😀

      3.    Wada dijo

        Vittu se on "vähemmän kuin" koodi "suurempi kuin" "alle" / koodi "suurempi kuin" hahahaha

      4.    jvk85321 dijo

        Ongelma, että kaiku -e ei ole vakio, joten se ei toimi kaikissa järjestelmissä.

        Myös tulee sotkuinen
        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:~$
        Ja tämän kanssa
        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:~$

        Mielestäni toinen esittää tuloksen paremmin, hahaha

        Atte
        jvk85321

      5.    jvk85321 dijo

        Nämä tarrat ovat bummer, hehehe, katsotaanpa, toimivatko ne nyt
        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:~$

        Ja tämän kanssa
        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:~$

        Mielestäni toinen esittää tuloksen paremmin, hahaha
        Atte
        jvk85321

      6.    jvk85321 dijo

        Jätä joka tapauksessa rivien väliset välit, siksi vihaan html: tä, hahahaha

  9.   Joaquin dijo

    Erinomainen! Tapun jalkasi haha

    En tiennyt, että avaimet voidaan sisäkkäin, koska en ole koskaan yrittänyt käyttää niitäkaan, se todella säästää paljon koodia ja on myös helpommin luettavissa tällä tavalla. Kiitos!

    1.    Wada dijo

      Kiitos, että ohitit veljen, olen iloinen siitä, että siitä oli hyötyä

      1.    Joaquin dijo

        Olet tervetullut, siksi olemme täällä jakamassa ideoita ja jakamassa niitä. En tiedä miten ohjelmoida, tein vain pari asiaa Bashissa ja julkaisin kahdessa viestissä joitain käsikirjoituksia, jotka tein. Mielestäni tämän tietäminen voi tehdä koodista helpommin ymmärrettävän.