Hoe u Bash Shell-scripts maakt en uitvoert op Windows 10
Met de komst van de Bash-shell van Windows 10, kunt u nu Bash shell-scripts maken en uitvoeren op Windows 10. U kunt ook Bash-opdrachten opnemen in een Windows-batchbestand of PowerShell-script.
Zelfs als je weet wat je doet, is dit niet per se zo eenvoudig als het lijkt. Windows en UNIX gebruiken verschillende tekens aan het einde van de regel en het Windows-bestandssysteem is toegankelijk op een andere locatie in de Bash-omgeving.
Hoe een Bash Script te schrijven op Windows 10
Houd er bij het schrijven van shell-scripts in Windows rekening mee dat Windows- en UNIX-achtige systemen zoals Linux verschillende "end-of-line" -tekens gebruiken in tekstbestanden in shellscripts.
Met andere woorden, dit betekent dat je niet eenvoudig een shellscript in Kladblok kunt schrijven. Sla het bestand op in Kladblok en het zal niet goed worden geïnterpreteerd door Bash. U kunt echter meer geavanceerde teksteditors gebruiken. Notepad ++ stelt u bijvoorbeeld in staat om een UNIX-einde-van-tekens in een bestand op te slaan door op Bewerken> EOL-conversie> UNIX / OSX-indeling te klikken.
Het is echter beter om alleen het shellscript in de Bash-omgeving zelf te schrijven. De op Ubuntu gebaseerde Bash-omgeving wordt geleverd met zowel de vi als nano-teksteditors. De vi-editor is krachtiger, maar als je hem nog nooit eerder hebt gebruikt, wil je misschien beginnen met nano. Het is gemakkelijker te gebruiken als je nieuw bent.
Als u bijvoorbeeld een bash-script in nano wilt maken, voert u de volgende opdracht in bash uit:
nano ~ / myscript.sh
Dit zou de Nano-teksteditor openen gericht op een bestand met de naam "myscript.sh" in de basismap van uw gebruikersaccount. (Het teken "~" staat voor je thuismap, dus het volledige pad is /home/username/myscript.sh.)
Start uw shellscript met de regel:
#! / Bin / bash
Voer de opdrachten in die u wilt uitvoeren, elk op een eigen regel. Het script zal elke opdracht om de beurt uitvoeren. Voeg een "#" -teken toe vóór een regel om het als een "opmerking" te behandelen, iets dat u en anderen helpt het script te begrijpen, maar dat niet als een opdracht wordt uitgevoerd. Raadpleeg voor meer geavanceerde tricks een meer gedetailleerde handleiding voor Bash-scripts op Linux. Dezelfde technieken werken in Bash op Ubuntu op Windows.
Merk op dat er geen manier is om Windows-programma's vanuit de Bash-omgeving uit te voeren. Je bent beperkt tot Linux-terminalopdrachten en -hulpprogramma's, net zoals je zou doen op een typisch Linux-systeem.
Laten we bijvoorbeeld een eenvoudig "Hello World" -script als voorbeeld gebruiken:
#! / bin / bash # stelt de STRING-variabele in STRING = "Hallo wereld!" # print de inhoud van de variabele op het scherm echo $ STRING
Als u de Nano-teksteditor gebruikt, kunt u het bestand opslaan door op Ctrl + O en vervolgens op Enter te drukken. Sluit de editor door op Ctrl + X te drukken.
Maak het script uitvoerbaar en voer het vervolgens uit
U wilt waarschijnlijk dat het script uitvoerbaar is, zodat u het gemakkelijker kunt uitvoeren. Onder Linux betekent dit dat je het scriptbestand de uitvoerbare machtiging moet geven. Hiertoe voert u de volgende opdracht uit in de terminal, wijzend op uw script:
chmod + x ~ / myscript.sh
Om het script uit te voeren, kunt u het nu gewoon in de terminal uitvoeren door het pad ervan in te typen. Wanneer u in de toekomst het script wilt starten, opent u gewoon de Bash-shell en typt u het pad naar het script.
~ / Myscript.sh
(Als het script in de huidige map staat, kunt u het uitvoeren met ./myscript.sh)
Hoe te werken met Windows-bestanden in een basisscript
Om toegang te krijgen tot Windows-bestanden in het script, moet u hun pad specificeren onder / mnt / c, niet hun Windows-pad. Als u bijvoorbeeld het bestand C: \ Users \ Bob \ Downloads \ test.txt wilt opgeven, moet u het pad / mnt/c/Users/Bob/Downloads/test.txt opgeven. Raadpleeg onze gids voor bestandslocaties in de Bash-shell van Windows 10 voor meer informatie.
Bash-opdrachten opnemen in een batch- of PowerShell-script
Als u ten slotte een bestaand batchbestand of PowerShell-script heeft waar u opdrachten in wilt opnemen, kunt u Bash-opdrachten direct uitvoeren met behulp van de bash -c
commando.
Als u bijvoorbeeld een Linux-opdracht in een opdrachtprompt of PowerShell-venster wilt uitvoeren, kunt u de volgende opdracht uitvoeren:
bash -c "commando"
Met deze truc kunt u Bash-opdrachten toevoegen aan batchbestanden of PowerShell-scripts. Het venster Bash-shell verschijnt als een Bash-opdracht wordt uitgevoerd.
Bijwerken: Als u meerdere Linux-omgevingen hebt geïnstalleerd, kunt u de opdracht wslconfig gebruiken om de standaard Linux-omgeving te kiezen die wordt gebruikt wanneer u de bash -c
commando.
Om een snelkoppeling naar een Bash-script vanuit Windows te maken, maakt u gewoon een snelkoppeling zoals normaal. Gebruik het. Voor het doel van de snelkoppeling bash -c
commando dat we hierboven hebben beschreven en wijs het naar het Bash-script dat je hebt gemaakt.
U zou bijvoorbeeld een snelkoppeling naar " bash -c "~ / myscript.sh"
"Om het bovenstaande voorbeeldscript uit te voeren. U kunt deze opdracht ook gewoon uitvoeren vanuit een opdrachtprompt of PowerShell-venster.