Priloženje teksta u navodnicima je prilično standardna praksa na naredbenom retku, posebno kada se radi o datotekama koje imaju razmake u imenima, ali kako znate hoćete li koristiti jednokratne ili dvostruke navodnike? Pogledajmo razliku i kada biste trebali koristiti jedan protiv drugog.
Opće pravilo je da dvostruki navodi još dopuštaju širenje varijabli unutar citata, a pojedinačni citati ne. Nastavi čitati.
Ako jednostavno priložite nekoliko riječi teksta, nije važno koje ćete koristiti, jer će oboje raditi upravo isto. Na primjer, te dvije naredbe će stvoriti direktorij pod nazivom Test Directory:
mkdir "Test Directory"
mkdir 'Test Directory'
Iskusniji tipovi vjerojatno će primijetiti da biste mogli koristiti i mkdir Test \ Directory ako želite.
Razlika između jednokratnih i dvostrukih navoda postaje važnija kada se bavite varijablama na naredbenoj liniji - prema zadanim postavkama, bash će proširiti varijablu poput $ testa u puni niz. Prvo ćemo dodijeliti varijablu:
test = "Ovo je test"
Sada možete koristiti ovu varijablu na naredbenom retku, kao što je ovaj, koji bi trebao jednostavno izlaziti Ovo je test na konzolu:
echo $ test
Evo gdje se razlika između dvostrukih i pojedinačnih navoda postaje jasnija - kada koristite pojedinačne citate, varijable neće biti proširene. Na primjer, ako pokrenete ovu naredbu:
echo '$ test'
Na naredbenom retku nećete vidjeti ništa osim "$ test" kada koristite pojedinačne navodnike, ali će se ispravno prikazivati kada koristite dvostruke navodnike:
Isto radi kad koristite znak za proširenje naredbe na naredbenom retku. Na primjer, kažete da ste htjeli upotrijebiti pwd naredba iz druge naredbe - upotrijebite povratne znakove da biste ih pročitali kako bi se proširila:
echo 'pwd' / test
Ako ste bili u vašoj kućnoj mapi, vidjet ćete izlaz koji je izgledao ovako:
/ Home / monstrum / test
Recimo, na primjer, nalazite se u mapi koja ima razmak u putu, a želite upotrijebiti ln naredbu za stvaranje simboličke veze na datoteku u trenutnom direktoriju. Obično trebate navesti cijeli put kada koristite ln naredbu, tako da je puno lakše koristiti 'pwd' za spremanje tipkanja.
Pogledajte što se događa kada pokušate upotrijebiti naredbu bez zatvaranja navoda:
ln -s 'pwd' / test / home / geek / povezani naziv
Umjesto toga, morat ćete obuhvatiti navodnike:
ln -s "" pwd '/ filename "/ neki / drugi / put
Za konkretniji primjer, pretpostavimo da imamo strukturu mapa poput ovog primjera, gdje svi nazivi datoteka sadrže razmake u njima:
Budući da naredba za unzip ne podržava upotrebu * da bi se pokrenula protiv svih datoteka, umjesto toga trebate upotrijebiti naredbu za. Evo gdje se stvari zanimaju:
za f u * .zip; unzip $ f; učinjeno
Uh! Izgleda da nije uspjelo.
Umjesto toga moramo upotrijebiti dvostruke navodnike oko $ f varijable, na primjer:
za f u * .zip; unzip "$ f" učinjeno
Sada svaki put kad zapovijed za naredbu prođe kroz petlju, zapravo će pokrenuti naredbu poput ove:
unzip "test 1.zip"
Naravno, to bi prolazilo i pokrenulo sličnu naredbu za svaku datoteku u direktoriju.
Sada kada smo prošli kroz primjere, brzo ćemo pregledati slučaj ako ste je propustili:
Dvostruki navodi
Pojedinačni citati
I tako završava lekcija citata. Koristite ih mudro.