30Jun

Hur man skapar och kör Bash Shell-skript på Windows 10

Med ankomsten av Windows 10s Bash-skal kan du nu skapa och köra Bash shell-skript på Windows 10. Du kan också integrera 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.

Så här skriver du en basskript på Windows 10

När du skriver skalskript i Windows bör du komma ihåg att Windows och UNIX-liknande system som Linux använder olika "slutet av rad" -tecken i textfiler i skalskript.

Med andra ord betyder det att du inte bara kan skriva ett skalskript i Anteckningsblock. Spara filen i Anteckningsblock och det kommer inte att tolkas ordentligt av Bash. Du kan dock använda mer avancerade textredigerare, till exempel, Notepad ++ låter dig ge en fil UNIX end-of-line-tecken genom att klicka på Redigera & gt;EOL-konvertering & gt;UNIX / OSX-format.

Det är dock bättre att du bara skriver skalskriptet i Bash-miljön självt. Den Ubuntu-baserade Bash-miljön levereras med både vi och nano-redaktörer. Vi-redaktören ä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.

För att skapa ett bash-skript i nano, skulle du köra följande kommando i bash:

nano ~ / myscript.sh

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

Starta ditt skalskript med raden:

#!/bin/ bash

Ange de kommandon du vill köra, var och en på 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å manuset men som inte körs som ett kommando. För mer avancerade tricks, 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 vanligt Linux-system.

Till exempel, låt oss bara använda ett grundläggande "hej världen" -skript som ett exempel här:

#!/bin/ bash # ställa in STRING-variabeln STRING = "Hello World!"# skriv ut innehållet i variabeln på skärm echo $ STRING

Om du använder Nano textredigerare kan du spara filen genom att trycka Ctrl + O och sedan Enter. Stäng redigeraren genom att trycka på Ctrl + X.

Gör scriptet körbart och kör sedan det

Du kommer noga att göra att manuset körs så att du kan köra det lättare. På Linux betyder det att du måste ge skriptfilen det körbara tillståndet. För att göra det, kör följande kommando i terminalen och peka på det på ditt skript:

chmod + x ~ / myscript.sh

För att köra skriptet kan du nu bara köra det i terminalen genom att skriva in sökvägen. När du vill starta skriptet i framtiden, öppna bara Bash-skalet och skriv vägen till manuset.

~ / myscript.sh

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

Hur man arbetar med Windows-filer i ett bashanteringsskript

För att komma åt Windows-filer i manuset, Du måste ange deras sökväg under /mnt/ c, inte deras Windows-sökväg. Om du till exempel vill ange filen C: \ Users \ Bob \ Downloads \ test.txt måste du ange /mnt/c/Users/Bob/Downloads/ test.txt-sökvägen. Läs vår guide till filplatser i Windows 10s Bash-skal för mer information.

Så här införlivar du baskommandon i en batch eller PowerShell-skript

Slutligen, om du har en befintlig batchfil eller PowerShell-skript som du vill infoga kommandon i, kan du köra Bash-kommandon direkt med bash -c-kommandot.

Om du 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. Bash-skalfönstret visas när ett Bash-kommando körs.

För att skapa en genväg till ett Bash-skript från Windows, skapa bara en genväg som normalt. För genvägens mål, använd det bash -c-kommandot vi skisserade ovan och peka det på det Bash-skript du skapade.

Du skulle till exempel peka en genväg på "bash -c" ~ / myscript.sh "" för att köra exemplet manuset ovan. Du kan också bara köra kommandot från ett Kommandotolken eller PowerShell-fönstret.