30Jun
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.
Een bash-script 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 geven door op Bewerken & gt;EOL-conversie & gt;UNIX / OSX-indeling.
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 in bash de volgende opdracht uit:
nano ~ / myscript.shHiermee wordt de Nano-teksteditor geopend die naar een bestand met de naam "myscript.sh" in uw gebruiker verwijstde basismap van het account.(Het teken "~" staat voor uw thuismap, dus het volledige pad is /home/username/ myscript.sh.)
Start uw shellscript met de regel:
#!/bin/ bashVoer 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 Windows-programma's niet vanuit de Bash-omgeving kunnen worden uitgevoerd. 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 $ STRINGAls 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 toestemming moet geven. Hiertoe voert u de volgende opdracht uit in de terminal, wijzend op uw script:
chmod + x ~ / myscript.shOm 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 zich in de huidige map bevindt, kunt u het uitvoeren met. /myscript.sh)
Werken met Windows-bestanden in een basisscript
Om toegang te krijgen tot Windows-bestanden in het script, Ik moet 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 hebt waarin u opdrachten wilt opnemen, kunt u Bash-opdrachten rechtstreeks uitvoeren met de bash -c-opdracht.
Als u bijvoorbeeld een Linux-opdracht in een opdrachtprompt of PowerShell-venster wilt uitvoeren, kunt u de volgende opdracht uitvoeren:
bash -c "opdracht"Met deze truc kunt u Bash-opdrachten toevoegen aan batchbestanden of PowerShell-scripts. Het venster Bash-shell verschijnt als een Bash-opdracht wordt uitgevoerd.
Om een snelkoppeling naar een Bash-script vanuit Windows te maken, maakt u gewoon een snelkoppeling zoals normaal. Gebruik voor het doel van de snelkoppeling de bash -c-opdracht die we hierboven hebben beschreven en wijs naar het Bash-script dat u hebt gemaakt.
Bijvoorbeeld, je zou een snelkoppeling naar "bash -c" ~ / myscript.sh "" wijzen om het bovenstaande voorbeeldscript uit te voeren. U kunt deze opdracht ook gewoon uitvoeren vanuit een opdrachtprompt of PowerShell-venster.