Wat is het verschil tussen enkele en dubbele aanhalingstekens in de Bash Shell?

wat-en-8217;s-het-verschil-tussen-enkele-en-dubbele-aanhalingstekens-in-the-bash-shell foto 1

Tekst tussen aanhalingstekens plaatsen is vrij standaard op de opdrachtregel, vooral als het gaat om bestanden met spaties in de namen, maar hoe weet u of u enkele of dubbele aanhalingstekens moet gebruiken? Laten we eens kijken naar het verschil en wanneer u de ene versus de andere moet gebruiken.

De algemene regel is dat dubbele aanhalingstekens nog steeds uitbreiding van variabelen binnen de aanhalingstekens toestaan, en enkele aanhalingstekens niet. Blijf lezen.



Citaten met eenvoudige tekst

Als je gewoon een paar woorden tekst invoegt, maakt het echt niet uit welke je gebruikt, omdat ze allebei precies hetzelfde werken. Deze twee opdrachten zullen bijvoorbeeld beide een map maken met de naam Test Directory:

|__+_|

Meer ervaren types zullen waarschijnlijk opmerken dat je ook mkdir Test Directory zou kunnen gebruiken als je dat zou willen.

Shell Variabele Uitbreiding

Het verschil tussen enkele en dubbele aanhalingstekens wordt belangrijker als je te maken hebt met variabelen op de opdrachtregel - standaard gaat bash een variabele zoals $ test uitbreiden tot de volledige tekenreeks. Eerst zullen we de variabele toewijzen:

|__+_|

Nu kunt u deze variabele op de opdrachtregel gebruiken, zoals deze, die gewoon moet worden uitgevoerd. Dit is een test voor de console:

|__+_|

Hier wordt het verschil tussen dubbele en enkele aanhalingstekens duidelijker: wanneer u enkele aanhalingstekens gebruikt, worden de variabelen niet uitgebreid. Als u bijvoorbeeld deze opdracht uitvoert:

|__+_|

U ziet niets anders dan '$test' op de opdrachtregel als u enkele aanhalingstekens gebruikt, maar het wordt correct uitgevoerd als u dubbele aanhalingstekens gebruikt:

wat-en-8217;s-het-verschil-tussen-enkele-en-dubbele-aanhalingstekens-in-the-bash-shell foto 3

Hetzelfde werkt als je het `-teken gebruikt om een ​​commando op de commandoregel uit te vouwen. Stel bijvoorbeeld dat u het pwd-commando vanuit een ander commando wilde gebruiken - u zou backticks gebruiken om de shell te vertellen om het uit te breiden:

|__+_|

Als je in je thuismap was, zou je uitvoer zien die er als volgt uitzag:

/home/nerd/test

Stel dat u zich bijvoorbeeld in een map bevindt met een spatie in het pad en dat u de opdracht ln wilt gebruiken om een ​​symbolische koppeling te maken naar een bestand in de huidige map. Meestal moet u het volledige pad specificeren wanneer u het ln-commando gebruikt, dus het is veel gemakkelijker om `pwd` te gebruiken om typen op te slaan.

Kijk wat er gebeurt als je de opdracht probeert te gebruiken zonder tussen aanhalingstekens te plaatsen:

|__+_|

wat-en-8217;s-het-verschil-tussen-enkele-en-dubbele-aanhalingstekens-in-the-bash-shell foto 4

In plaats daarvan moet je tussen aanhalingstekens plaatsen:

|__+_|

Laten we voor een meer concreet voorbeeld aannemen dat we een mappenstructuur hebben zoals dit voorbeeld, waar alle bestandsnamen spaties bevatten:

wat-en-8217;s-het-verschil-tussen-enkele-en-dubbele-aanhalingstekens-in-the-bash-shell foto 5

Aangezien de unzip-opdracht geen ondersteuning biedt voor het gebruik van * om het voor alle bestanden uit te voeren, moet u in plaats daarvan de opdracht for gebruiken. Hier wordt het interessant:

|__+_|

Oeps! Het lijkt erop dat het niet werkte.

wat-en-8217;s-het-verschil-tussen-enkele-en-dubbele-aanhalingstekens-in-the-bash-shell foto 6

Wat we in plaats daarvan moeten doen, is dubbele aanhalingstekens gebruiken rond de $ f-variabele, zoals deze:

|__+_|

Elke keer dat het for-commando door de lus gaat, zal het een commando als dit uitvoeren:

|__+_|

Natuurlijk zou het doorlopen en een vergelijkbare opdracht uitvoeren voor elk bestand in de map.

Laten we eens kijken

Nu we de voorbeelden hebben doorgenomen, zullen we het snel bekijken voor het geval je het hebt gemist:

Dubbele aanhalingstekens

  • Gebruik dit wanneer u variabelen wilt insluiten of shell-expansie binnen een string wilt gebruiken.
  • Alle tekens binnenin worden geïnterpreteerd als gewone tekens, behalve $ of ` die in de shell worden uitgevouwen.

Enkele Citaten

  • Alle tekens tussen enkele aanhalingstekens worden geïnterpreteerd als een tekenreeks.

En zo eindigt de les van de citaten. Gebruik ze verstandig.

Meer verhalen

Waarom is de tekstgrootte van de website plotseling groter geworden tijdens het browsen met Google Chrome?

Er zijn maar weinig dingen zo frustrerend als het hebben van een programma-update en plotseling dingen kapot maken die voorheen perfect werkten. Voorbeeld, tekstgrootte van de website met de nieuwste stabiele release van Google Chrome. Is er een eenvoudige oplossing voor het probleem met de tekstgrootte? De SuperUser-post van vandaag komt naar de

Geek Trivia: Welke kleine wezens leven in oude boeken en beschermen ze tegen schade?

Denk je het antwoord te weten? Klik door om te zien of je gelijk hebt!

Zorg ervoor dat een Windows-pc nooit malware krijgt door applicaties op de witte lijst te zetten

Een witte lijst zou een onfeilbare manier moeten zijn om de pc van een familielid te beveiligen. Selecteer een handvol goedgekeurde applicaties en laat ze alleen draaien. Als iemand die de pc gebruikt een ander .exe-bestand downloadt, weigert Windows het uit te voeren.

Geek Trivia: Waar werd de eerste van de iconische Cray-supercomputers geïnstalleerd?

Denk je het antwoord te weten? Klik door om te zien of je gelijk hebt!

64-bits versies van Google Chrome zijn nu beschikbaar in het stabiele kanaal

De 64-bit builds van Chrome hebben zich langzaam maar zeker een weg gebaand door het releasekanaalsysteem van Google en deze week zijn ze eindelijk in het stabiele kanaal beland!

Wanneer u wordt gevraagd om opnieuw op te starten na het verwijderen van software, is afsluiten dan ook goed?

Meestal hoeft u uw computer niet opnieuw op te starten nadat u een programma hebt verwijderd, maar er zijn momenten waarop Windows u vraagt ​​dit voor een bepaald programma te doen. Kan het afsluiten van uw computer net zo goed werken als een volledige herstart? De SuperUser Q&A-post van vandaag heeft het antwoord op een nieuwsgierige

Geek Trivia: de term Jaywalking ontleent zijn naam aan?

Denk je het antwoord te weten? Klik door om te zien of je gelijk hebt!

Hoe u kunt zien wat de opslag van uw Android-apparaat opslokt

Het is maar al te gemakkelijk om je Android-telefoon of -tablet tot de nok toe vol te proppen met gegevens en je merkt dat je geen ruimte hebt om nieuwe apps te installeren of nieuwe media te downloaden. Vandaag bekijken we hoe u snel kunt beoordelen wat al uw schijfruimte opslokt.

Geek Trivia: De Venus Fly Trap is alleen in welke regio van de wereld te vinden?

Denk je het antwoord te weten? Klik door om te zien of je gelijk hebt!

Hoe u de kanaalsurfervaring op XBMC kunt recreëren

Het runnen van een thuismediaserver is best geweldig: prachtige albumhoezen, afspeellijsten en al je media binnen handbereik. Een ding dat mediacentra echter tekortschieten, is het gevoel van doelloos kanaalsurfen opnieuw te creëren om die tv-kijkende jeuk te krabben. Lees verder terwijl we u laten zien hoe u dat doet