Tekstin lisääminen lainausmerkkeihin on melko tavanomainen käytäntö komentorivillä, varsinkin kun käsitellään tiedostoja, joilla on välilyöntejä nimeissä, mutta miten tiedät, käytetäänkö yksittäisiä tai kaksoispisteitä? Katsotaanpa eroa, ja kun käytät toisiaan vastaan.
Yleissääntönä on, että kaksoismerkit sallivat edelleen muuttujien laajentamisen lainausmerkkien sisällä, ja yksittäiset lainaukset eivät. Jatka lukemista.
Jos lisäät vain muutaman sanan tekstiä, sillä ei ole väliä, mitä käytät, sillä ne toimivat täsmälleen samalla tavalla. Esimerkiksi nämä kaksi komentoa muodostavat sekä hakemisto nimeltä Test Directory:
mkdir "Test Directory"
mkdir 'Test Directory'
Kokeneempi tyyppi todennäköisesti huomaa, että voit myös käyttää mkdir Test \ Directory, jos haluat.
Yksittäis- ja kaksoisotosten välinen ero on tärkeämpi, kun käsittelette muuttujia komentorivillä - oletusarvoisesti bash aikoo laajentaa muuttujaa $ testiksi täysiin merkkijonoon. Ensin määritetään muuttuja:
test = "Tämä on testi"
Nyt voit käyttää tätä muuttujaa komentorivillä, kuten tämä, joka pitäisi vain tuottaa Tämä on testi konsoliin:
echo $ testi
Tällöin ero kaksinkertaisen ja yhden lainauksen välillä muuttuu selvemmäksi. Kun käytät yksittäisiä lainauksia, muuttujia ei tule laajentamaan. Jos esimerkiksi suoritat tämän komennon:
echo '$ test'
Komentorivillä ei näy muuta kuin "$ test", kun käytät yksittäisiä lainauksia, mutta se tulostaa oikein, kun käytät kaksoisvetotarvoja:
Sama asia toimii, kun käytät komentoa komentorivin laajentamiseen. Oletetaan esimerkiksi, että halusit käyttää pwd komennon toisesta komennosta - käytät vastaavia ohjeita kuoren laajentamiseksi:
echo 'pwd' / testi
Jos olit kotikansioosi, näet tuotoksen, joka näytti näin:
/ Home / pelle / testi
Sano esimerkiksi, että olet kansio, jolla on tilaa polussa, ja haluat käyttää ln-komentoa luomaan symbolisen linkin nykyisen hakemiston tiedostoon. Sinun on yleensä määriteltävä koko polku käytettäessä ln-komentoa, joten on paljon helpompaa käyttää 'pwd' tallentaaksesi kirjoittamisen.
Katso, mitä tapahtuu, kun yrität käyttää komentoa sulkematta lainauksia:
ln -s 'pwd' / testi / home / geek / linkitetty nimi
Sen sijaan sinun on ympäröitävä lainausmerkkejä:
ln -s "" pwd "/ tiedostonimi" / osa / muu / polku
Konkreettisemmaksi esimerkiksi oletetaan, että meillä on tämän esimerkin kansiorakenne, jossa kaikilla tiedostonimillä on välilyöntejä:
Koska unzip-komento ei tue * käyttämään sitä kaikkia tiedostoja vastaan, sinun on käytettävä command for -komentoa. Täältä asiat kiinnostavat:
f in * .zip; tee unzip $ f; tehty
Oho! Näyttää siltä, ettei se toimi.
Sen sijaan meidän on käytettävä kaksinkertaisia lainauksia $ f -muuttujan ympärillä, kuten:
f: lle * .zip; poista unzip "$ f" tehdyksi
Nyt joka kerta kun komento menee silmukan läpi, se ajaa itse asiassa tällaisen komennon:
unzip "test 1.zip"
Tietenkin se lukisi ja suoritti samanlaisen komennon jokaiselle hakemiston tiedostolle.
Nyt kun olemme käyneet läpi esimerkkejä, me vain tarkastelemme nopeasti, jos olet unohtanut sen:
Double Quotes
Yksittäiset lainaukset
Ja siten päättyy kurssin oppitunti. Käytä niitä viisaasti.