Hur man skapar och kör Bash skalskript på Windows 10

  • Chris Hoffman

    @chrisbhoffman

  • uppdaterad 7 mars 2018, 2:31PM EDT

med ankomsten av Windows 10s bash shell kan du nu skapa och köra Bash shell-skript på Windows 10. Du kan också införliva Bash-kommandon i en Windows-batchfil eller PowerShell-skript.

Även om du vet vad du gör är det inte nödvändigtvis så enkelt som det verkar. Windows och UNIX använder olika end-of-line-tecken, och Windows-filsystemet är tillgängligt på en annan plats i Bash-miljön.

hur man skriver ett Bash-skript på Windows 10

relaterat: hur man installerar och använder Linux Bash-skalet på Windows 10

När du skriver skalskript på Windows, kom ihåg att Windows och UNIX-liknande system som Linux använder olika ”end of line” – tecken i textfiler i skalskript.

annons

med andra ord betyder det att du inte bara kan skriva ett skalskript i Anteckningsblock. Spara filen i Anteckningar och det kommer inte att tolkas korrekt av Bash. Du kan dock använda mer avancerade textredigerare–till exempel Notepad++ kan du ge en fil UNIX end-of-line tecken genom att klicka på Redigera > Eol konvertering > UNIX/OSX-Format.

men du är bättre att bara skriva skalskriptet i Bash-miljön själv. Den Ubuntu-baserade Bash-miljön levereras med både vi och nano textredigerare. Vi-redigeraren är kraftfullare, men om du aldrig har använt den tidigare kanske du vill börja med nano. Det är lättare att använda om du är ny.

till exempel, för att skapa ett bash-skript i nano, kör du följande kommando i bash:

nano ~/myscript.sh

detta skulle öppna Nano-textredigeraren pekad på en fil med namnet ”myscript.sh” i ditt användarkontos hemkatalog. (Tecknet ” ~ ” representerar din hemkatalog, så hela sökvägen är / home/username/myscript.sh.)

Starta ditt skalskript med raden:

#!/bin/bash

relaterad: Nybörjarens Guide till skalskript: grunderna

annons

Ange de kommandon du vill köra, var och en på sin egen rad. Skriptet Kör varje kommando i sin tur. Lägg till ett ” # ” tecken före en rad för att behandla det som en ”kommentar”, något som hjälper dig och andra människor att förstå skriptet men som inte körs som ett kommando. För mer avancerade knep, se en mer detaljerad guide till Bash-skript på Linux. Samma tekniker kommer att fungera i Bash på Ubuntu på Windows.

Observera att det inte finns något sätt att köra Windows-program från Bash-miljön. Du är begränsad till Linux-terminalkommandon och verktyg, precis som du skulle vara på ett typiskt Linux-system.

Låt oss till exempel bara använda ett grundläggande ”hello world” – skript som ett exempel här:

#!/bin/bash # set the STRING variable STRING="Hello World!" # print the contents of the variable on screen echo $STRING

om du använder Nano-textredigeraren kan du spara filen genom att trycka på Ctrl+O och sedan ange. Stäng redigeraren genom att trycka på Ctrl + X.

gör skriptet körbart och kör det sedan

du vill förmodligen göra skriptet körbart så att du kan köra det lättare. På Linux betyder det att du måste ge skriptfilen den körbara behörigheten. För att göra det, kör följande kommando i terminalen och peka det på ditt skript:

chmod +x ~/myscript.sh

annons

för att köra skriptet kan du nu bara köra det i terminalen genom att skriva dess sökväg. När du vill starta skriptet i framtiden öppnar du bara Bash-skalet och skriver sökvägen till skriptet.

~/myscript.sh

(om skriptet finns i den aktuella katalogen kan du köra det med ./myscript.sh)

hur man arbetar med Windows-filer i ett Bash-skript

relaterat: så här kommer du åt dina Ubuntu Bash-filer i Windows (och din Windows-systemdriven i Bash)

för att komma åt Windows-filer i skriptet måste du ange deras sökväg under /mnt/c, inte deras Windows-sökväg. Till exempel, om du vill ange C:\ Användare \ Bob \ nedladdningar \ test.txt-fil, du måste ange/mnt/c/Users/Bob/Downloads / test.txt väg. Se vår guide till filplatser i Windows 10s Bash-skal för mer information.

så här införlivar du Bash-kommandon i ett Batch-eller PowerShell-skript

relaterat: så här ställer du in din standard Linux-Distribution på Windows 10

slutligen, om du har en befintlig batchfil eller PowerShell-skript som du vill integrera kommandon i, kan du köra Bash-kommandon direkt med kommandotbash -c.

annons

Om du till exempel vill köra ett Linux-kommando i ett kommandotolk eller PowerShell-fönster kan du köra följande kommando:

bash -c "command"

med det här tricket kan du lägga till Bash-kommandon i batchfiler eller PowerShell-skript. Fönstret Bash shell visas när ett Bash-kommando körs.

uppdatering: om du har flera Linux-miljöer installerade kan du använda kommandot wslconfig för att välja standard Linux-miljö som används när du kör kommandot bash -c.

För att skapa en genväg till ett Bash-skript från Windows, skapa bara en genväg som vanligt. För genvägsmålet använder du kommandot bash -c som vi skisserade ovan och pekar på det Bash-skript du skapade.

annons

till exempel skulle du peka en genväg på ” bash -c "~/myscript.sh" ” för att köra exempelskriptet ovan. Du kan också bara köra det här kommandot från ett kommandotolk eller PowerShell-fönster också.

Chris Hoffman
Chris Hoffman är chefredaktör för How-To Geek. Han har skrivit om teknik i över ett decennium och var en PCWorld-kolumnist i två år. Chris har skrivit för The New York Times, intervjuats som teknikexpert på TV-stationer som Miamis NBC 6, och hade sitt arbete täckt av nyhetskanaler som BBC. Sedan 2011 har Chris skrivit över 2000 artiklar som har lästs nästan en miljard gånger—och det är bara här på How-To Geek.Läs hela Bio ”

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *