Bash Hur man utför ett kommando i en variabel?
On november 22, 2021 by adminBash-skript kan skapas på många olika sätt och de flesta av oss är bekanta med att utföra enkla kommandon i ett Bash-skript. Dessa kommandon kan dock också kapslas in i variablerna i Bash. Denna process är känd som kommandosubstitution och används i allmänhet för att lagra resultatet av ett kommando i en variabel så att du inte behöver köra det kommandot explicit om och om igen utan istället kan du helt enkelt komma åt variabeln för att få ut resultatet av det kommandot när du vill. I den här artikeln kommer vi att visa hur detta kan göras.
Notera: Alla scenarier som demonstreras nedan har utförts på Ubuntu 20.04. De kommer dock att fungera exakt på samma sätt med alla andra varianter av Linux också.
Metod för att utföra ett kommando i en variabel i Bash:
För att demonstrera metoden för att utföra ett kommando i en variabel i Bash kommer vi att presentera tre olika scenarier som är följande:
Exekvering av kommandot ”echo” som är lagrat i en variabel:
Det här är det enklaste scenariot där vårt mål är att exekvera kommandot echo som är lagrat i en variabel. För att få det att hända måste du följa nedanstående steg:
Steg 1: Skapa ett Bash-skript:
Du måste skapa ett Bash Script i din Home-mapp för vilket du måste klicka på ikonen File Manager som du kan se i följande bild:
Hitta nu ett utrymme i din Home-mapp och högerklicka på det för att starta en meny. Välj alternativet Nytt dokument från den här menyn och välj sedan alternativet Tomt dokument från den underliggande menyn. Genom att göra detta skapas ett nytt dokument i din hemmapp. Byt nu namn på detta nyskapade dokument till ett valfritt namn följt av tillägget .sh. I vårt fall har vi döpt det till CommandVar.sh.
För att skriva ett Bash-skript i den här filen dubbelklickar du på den för att öppna den och skriver sedan skriptet som visas i bilden nedan i din Bash-fil. Här visar den första raden i skriptet, dvs. ”#!/bin/bash”, att den här filen faktiskt är en Bash-fil. Sedan har vi skapat en variabel med namnet ”test” och tilldelat den värdet ”$(echo ”Hej där!”)”. När du vill lagra kommandot i en variabel måste du skriva kommandot föregånget av symbolen ”$”. I det här fallet ville vi lagra kommandot ”echo” i variabeln ”test” så vi har helt enkelt skrivit kommandot ”echo” följt av ett slumpmässigt meddelande och har omslutit det inom runda parenteser och placerat en ”$”-symbol före det. Om vi nu vill utföra detta ”echo”-kommando måste vi komma åt variabeln ”test”. För att kontrollera om det ”echo”-kommando som är lagrat i variabeln ”test” kan exekveras eller inte, har vi skrivit ut utdata från variabeln ”test” på terminalen med hjälp av ett annat ”echo”-kommando. När du har skrivit det här skriptet måste du spara filen och stänga den.
Steg nr 2: Exekvering av Bash-skriptet via terminalen:
Nu måste du exekvera det här skriptet via terminalen. Öppna terminalen i Ubuntu 20.04 och skriv sedan följande kommando i den:
När du trycker på Enter-tangenten för att utföra kommandot kommer du att kunna se följande utdata i din terminal. Här är den markerade delen av utmatningen resultatet av kommandot ”echo” som lagrats i variabeln ”test”.
Exekvering av kommandot ”seq” som lagrats i en variabel:
I det här scenariot kommer vi att skriva ut en sekvens av siffror genom att använda kommandot ”seq” som lagrats i en variabel. För att få det att hända kommer vi att ändra Bash-skriptet som skapats ovan genom att utföra följande steg:
Steg 1: Ändra Bash-skriptet som skapats ovan:
Öppna Bash-filen som du har skapat i metoden ovan och skriv följande skript i den. Här har vi skapat en variabel som heter ”sequence”. Vårt mål är att skriva ut siffrorna från 1 till 10 medan vi använder kommandot ”seq”. För att göra det har vi tilldelat värdet ”$(seq 1 10)” till variabeln ”sequence”. Du kan också ange något annat valfritt talintervall om du vill. Det första talet efter kommandot ”seq” anger den nedre gränsen för sekvensen medan det andra talet anger den övre gränsen. När du har skrivit det här skriptet sparar du filen och stänger den.
Steg nr 2: Exekvering av det modifierade Bash-skriptet via terminalen:
Exekvera nu ditt Bash-skript på samma sätt som förklarats ovan och du kommer att kunna se den specificerade sekvensen på terminalen som visas i bilden nedan:
Exekvering av kommandot ”pwd” som lagras i en variabel:
Du kan också skriva ut din arbetskatalog genom att använda kommandot ”pwd” som lagras i en variabel. För att demonstrera detta kommer vi att ändra Bash-skriptet som skapats ovan ännu en gång genom att följa nedanstående steg:
Steg 1: Ändra Bash-skriptet som skapats ovan:
Öppna den Bash-fil som du just har ändrat och skriv sedan in skriptet som visas i följande bild i den. I det här skriptet har vi skapat en variabel som heter ”working_directory” och tilldelat den värdet ”$(pwd)”. Kommandot ”pwd” kommer helt enkelt att lagra sitt resultat, dvs. den aktuella arbetskatalogen, i variabeln ”working_directory”. För att kontrollera om kommandot ”pwd” har utförts korrekt eller inte har vi skrivit ut värdet på variabeln ”working_directory” på terminalen genom att använda kommandot ”echo”. Spara nu den här filen och stäng den sedan efter att ha skrivit in det modifierade Bash-skriptet i den.
Steg # 2: Exekvering av det modifierade Bash-skriptet via terminalen:
Exekvera nu det här Bash-skriptet på precis samma sätt som förklarats ovan. Utmatningen av detta Bash-skript kommer att visa dig den aktuella arbetskatalogen. Den markerade delen av utmatningen är i själva verket utmatningen av kommandot ”pwd”.
Slutsats:
Den här artikeln ger en mycket bra idé om hur du kan exekvera ett kommando som är lagrat i en variabel i Bash och få samma utmatning som du skulle ha fått om du kört kommandot självständigt.
Lämna ett svar