Kotisivu » miten » Mitä eroa on yksi- ja kaksoissarjoilla Bash Shellissä?

    Mitä eroa on yksi- ja kaksoissarjoilla Bash Shellissä?

    Tekstin liittäminen lainausmerkkeihin on melko vakiintunut käytäntö komentorivillä, varsinkin kun käsitellään tiedostoja, joissa on nimiä sisältäviä välilyöntejä, mutta miten tiedät, käytetäänkö yhden tai kahden lainausmerkkejä? Katsotaanpa eroavaisuutta, ja kun sinun pitäisi käyttää yhtä vs toista.

    Yleissääntönä on, että kaksinkertaiset lainausmerkit sallivat edelleen muuttujien laajentamisen lainausmerkeissä ja yksittäiset lainaukset eivät. Jatka lukemista.

    Lainaukset yksinkertaisen tekstin avulla

    Jos liität vain muutaman tekstin sanan, se ei todellakaan ole väliä siitä, mitä käytät, koska molemmat toimivat samalla tavalla. Nämä kaksi komentoa luovat esimerkiksi hakemiston nimeltä Test Directory:

    mkdir "Test Directory"
    mkdir 'Test Directory'

    Kokeneemmat tyypit huomaavat todennäköisesti, että voit käyttää myös mkdir Test Directorya, jos haluat.

    Shell Variable Expansion

    Yksittäisten ja kaksinkertaisten lainausmerkkien välinen ero tulee tärkeämmäksi, kun olet tekemisissä muuttujien kanssa komentoriviltä oletusarvoisesti, bash laajentaa muuttujan kuten $ test koko merkkijonoon. Ensin annamme muuttujan:

    test = "Tämä on testi"

    Nyt voit käyttää tätä muuttujaa komentorivillä, kuten tämä, jonka pitäisi vain tulostaa Tämä on testi konsoliin:

    echo $ testi

    Tässä on kaksinkertaisten ja yksittäisten lainausmerkkien välinen ero selkeämpi, kun käytät yksittäisiä lainauksia, muuttujia ei laajenneta. Jos esimerkiksi suoritat tämän komennon:

    echo '$ test'

    Näet komentorivillä vain $ testin, kun käytät yksittäisiä lainausmerkkejä, mutta se tulostuu oikein, kun käytät kaksinkertaisia ​​lainausmerkkejä:

    Sama pätee, kun käytät komentoa "merkki" komentorivillä. Esimerkiksi, halusit käyttää pwd komento toisesta komennosta - voit käyttää backticks-näppäintä kertomaan kuorelle laajentaakseen sen:

    echo 'pwd' / testi

    Jos olisit kotikansiossa, näet tuotoksen, joka näytti tältä:

    / Home / pelle / testi

    Sano esimerkiksi, että olet kansiossa, jossa on polku, ja haluat käyttää ln-komentoa luodaksesi symbolisen linkin nykyisen hakemiston tiedostoon. Sinun on yleensä määritettävä koko polku, kun käytät ln-komentoa, joten "pwd": n käyttö on paljon helpompaa tallentaa kirjoittamisen.

    Katso, mitä tapahtuu, kun yrität käyttää komentoa ilman, että olet lainaamassa lainausmerkkejä:

    ln -s 'pwd' / testi / koti / geek / linkitetty nimi

    Sen sijaan sinun täytyy ympäröitä lainausmerkkejä:

    ln -s "'pwd' / filename / / / / / polku

    Tarkempi esimerkki oletetaan, että meillä on tämän esimerkin kaltainen kansiorakenne, jossa kaikissa tiedostonimissä on välilyöntejä:

    Koska unzip-komento ei tue * -toimintoa sen suorittamiseksi kaikkia tiedostoja vastaan, sinun on käytettävä sen sijaan komentoa. Tässä on mielenkiintoisia asioita:

    f: lle * .zip: ssä, tee unzip $ f;

    Oho! Näyttää siltä, ​​että se ei toiminut.

    Sen sijaan meidän on käytettävä kaksinkertaisia ​​lainausmerkkejä $ f muuttujan ympärillä:

    f: lle * .zip: ssä, tee unzip "$ f";

    Nyt joka kerta kun komento lähtee läpi silmukan, se todella suorittaa tämän kaltaisen komennon:

    unzip "test 1.zip"

    Tietenkin se silmukoi läpi ja suorittaa samanlaisen komennon jokaiselle hakemiston tiedostolle.

    Tarkastellaan

    Nyt kun olemme käyneet läpi esimerkkejä, tarkistamme vain nopeasti, jos olet unohtanut sen:

    Double Quotes

    • Käytä, kun haluat liittää muuttujia tai käyttää kuoren laajennusta merkkijonon sisällä.
    • Kaikki sisällä olevat merkit tulkitaan tavallisiksi merkeiksi paitsi $ tai ", joka laajennetaan kuorelle.

    Yksittäiset tarjoukset

    • Kaikki yksittäisten lainausten merkit tulkitaan merkkijonoksi.

    Ja siten päättyy lainausten opetus. Käytä niitä viisaasti.