Bash Hoe voer je een commando uit in een variabele?

Bash How Execute Command Variable



Bash-scripts kunnen op verschillende manieren worden gemaakt en de meesten van ons zijn bekend met het uitvoeren van de eenvoudige opdrachten binnen een Bash-script. Deze opdrachten kunnen echter ook worden ingekapseld in de variabelen in Bash. Dit proces staat bekend als opdrachtvervanging en wordt over het algemeen gebruikt om de uitvoer van een opdracht in een variabele op te slaan, zodat u die opdracht niet steeds opnieuw expliciet hoeft uit te voeren, maar u kunt eenvoudig toegang krijgen tot die variabele om de uitvoer van die opdracht te krijgen wanneer je maar wilt. In dit artikel laten we u zien hoe u dit kunt doen.

Opmerking: alle onderstaande scenario's zijn uitgevoerd op Ubuntu 20.04. Ze zullen echter ook precies op dezelfde manier werken met elke andere smaak van Linux.







Methode voor het uitvoeren van een opdracht in een variabele in Bash:

Om de methode voor het uitvoeren van een opdracht in een variabele in Bash te demonstreren, zullen we u drie verschillende scenario's presenteren die als volgt zijn:



Het echo-commando uitvoeren dat is opgeslagen in een variabele:

Dit is het eenvoudigste scenario waarin ons doel is om het echo-commando uit te voeren dat in een variabele is opgeslagen. Om dit te laten gebeuren, moet u de onderstaande reeks stappen volgen:



Stap # 1: Een bash-script maken:

U moet een Bash-script maken in uw thuismap waarvoor u op het pictogram Bestandsbeheer moet klikken, zoals u kunt zien in de volgende afbeelding:





Zoek nu een willekeurige ruimte in uw thuismap en klik er met de rechtermuisknop op om een ​​menu te starten. Selecteer de optie Nieuw document in dit menu en kies vervolgens de optie Document leegmaken in het subcascademenu. Als u dit doet, wordt een nieuw document in uw thuismap gemaakt. Hernoem dit nieuw gemaakte document nu met een naam naar keuze, gevolgd door de .sh-extensie. In ons geval hebben we het CommandVar.sh genoemd.



Om een ​​Bash-script in dit bestand te schrijven, dubbelklikt u erop om het te openen en typt u vervolgens het script dat wordt weergegeven in de onderstaande afbeelding in uw Bash-bestand. Hier laat de eerste regel van het script, d.w.z. #!/bin/bash, zien dat dit bestand in feite een Bash-bestand is. Vervolgens hebben we een variabele met de naam test gemaakt en deze de waarde $(echo Hallo daar!) toegewezen. Wanneer u de opdracht in een variabele wilt opslaan, moet u die opdracht typen, voorafgegaan door een $ -symbool. In dit geval wilden we het echo-commando in de testvariabele opslaan, dus we hebben simpelweg het echo-commando getypt gevolgd door een willekeurig bericht en hebben het tussen ronde haakjes geplaatst en er een $-symbool voor geplaatst. Dus nu, als we dit echo-commando willen uitvoeren, moeten we toegang krijgen tot de testvariabele. Om te controleren of het echo-commando dat in de testvariabele is opgeslagen, met succes kan worden uitgevoerd of niet, hebben we daarom de uitvoer van de testvariabele op de terminal afgedrukt door gebruik te maken van een ander echo-commando. Nadat u dit script hebt getypt, moet u uw bestand opslaan en sluiten.

Stap #2: Het Bash-script uitvoeren via de Terminal:

Nu moet je dit script via de terminal uitvoeren. Open dus de terminal in Ubuntu 20.04 en typ de volgende opdracht erin:

bashCommandVar.sh

Wanneer u op de Enter-toets drukt om deze opdracht uit te voeren, ziet u de volgende uitvoer op uw terminal. Hier is het gemarkeerde gedeelte van de uitvoer de uitvoer van de echo-opdracht die in de testvariabele is opgeslagen.

Het seq-commando uitvoeren dat is opgeslagen in een variabele:

In dit scenario zullen we een reeks getallen afdrukken met behulp van de opdracht seq die in een variabele is opgeslagen. Om dit te laten gebeuren, zullen we het hierboven gemaakte Bash-script wijzigen door de volgende stappen uit te voeren:

Stap # 1: Het hierboven gemaakte Bash-script wijzigen:

Open het Bash-bestand dat u met de bovenstaande methode hebt gemaakt en typ het volgende script erin. Hier hebben we een variabele met de naam sequence gemaakt. Ons doel is om de getallen van 1 tot 10 af te drukken met de opdracht seq. Om dat te doen, hebben we de waarde $(seq 1 10) toegewezen aan de sequence-variabele. U kunt desgewenst ook een ander nummerbereik naar keuze opgeven. Het eerste cijfer na het seq-commando geeft de ondergrens van de reeks aan, terwijl het tweede cijfer verwijst naar de bovengrens. Nadat u dit script hebt getypt, slaat u uw bestand op en sluit u het.

Stap # 2: Het aangepaste Bash-script uitvoeren via de terminal:

Voer nu uw Bash-script uit op dezelfde manier als hierboven uitgelegd en u zult de opgegeven volgorde op uw terminal kunnen zien, zoals weergegeven in de onderstaande afbeelding:

Uitvoeren van 'pwd'-opdracht opgeslagen in een variabele:

U kunt uw werkdirectory ook afdrukken door gebruik te maken van het pwd-commando dat in een variabele is opgeslagen. Om dit te demonstreren, zullen we het hierboven gemaakte Bash-script opnieuw wijzigen door de onderstaande stappen te volgen:

Stap # 1: Het hierboven gemaakte Bash-script wijzigen:

Open het Bash-bestand dat u zojuist hebt gewijzigd en typ vervolgens het script dat in de volgende afbeelding wordt weergegeven. In dit script hebben we een variabele gemaakt met de naam working_directory en hieraan de waarde $(pwd) toegekend. Het pwd-commando slaat eenvoudig de uitvoer op, d.w.z. de huidige werkdirectory in de variabele working_directory. Om te controleren of het pwd-commando correct is uitgevoerd of niet, hebben we de waarde van de working_directory-variabele op de terminal afgedrukt met behulp van het echo-commando. Sla dit bestand nu op en sluit het nadat u het gewijzigde Bash-script erin hebt getypt.

Stap # 2: Het aangepaste Bash-script uitvoeren via de terminal:

Voer dit Bash-script nu op dezelfde manier uit als hierboven is uitgelegd. De uitvoer van dit Bash-script toont u de huidige werkmap. Het gemarkeerde gedeelte van de uitvoer is in feite de uitvoer van het pwd-commando.

Conclusie:

Dit artikel geeft een heel goed idee van hoe je een opdracht kunt uitvoeren die is opgeslagen in een variabele in Bash en dezelfde uitvoer kan krijgen als je zou hebben gekregen als je de opdracht onafhankelijk had uitgevoerd.