Shell-script uitvoeren in Windows

Pictogram voor leestijd 7 minuut. lezen


Lezers helpen MSpoweruser ondersteunen. We kunnen een commissie krijgen als u via onze links koopt. Tooltip-pictogram

Lees onze openbaarmakingspagina om erachter te komen hoe u MSPoweruser kunt helpen het redactieteam te ondersteunen Lees meer

Shell-scriptbestanden of SH-bestanden (.sh-extensie) kunnen erg handig zijn voor software-ingenieurs bij een verscheidenheid aan bewerkingen, van bestandsverwerking tot programma-uitvoering en meer.

Het is bekend dat dit scripttaalopdrachtenbestand met een reeks opdrachten wordt gebruikt voor het Linux-besturingssysteem door het uit te voeren via een computerprogramma genaamd BASH.

In verband daarmee zijn Bash-shellscripts geschreven in de BASH-taal (Bourne-Again Shell) die wordt herkend door Linux-programma's.

Als u het echter rechtstreeks op Windows gebruikt via de opdrachtprompt of PowerShell terminal is niet mogelijk omdat de commandotaal niet bekend is bij het systeem. Gelukkig zijn er verschillende manieren om .sh- of shell-scriptbestanden uit te voeren in Windows 10 en Windows 11.

Het gebruik van shellscriptbestanden in Linux is eenvoudiger dan op Windows. In het laatste geval heb je het gebruik van andere software nodig om bash-scripts uit te voeren als batchbestanden die werken voor Windows-systemen.

Je kunt ook proberen scriptshell-bestanden te converteren naar uitvoerbare Windows-BAT-bestanden, maar dit vereist een enorme kennis van commando's van scripts en batchbestanden, inclusief het vertalen van een scriptbestand naar een batchbestand. Deze optie is ingewikkeld, maar er zijn eenvoudigere manieren om shell-scripts uit te voeren in Windows 10/11. Hier zijn er een aantal.

Windows Subsystem voor Linux

De eerste optie is om het Windows-subsysteem voor Linux of WSL te gebruiken, een compatibiliteitslaag voor het native uitvoeren van Linux-binaire uitvoerbare bestanden op Windows-systemen. Het is van toepassing op de meeste scenario's, waardoor u een shellscript kunt uitvoeren in Windows 11/10.

WSL is niet automatisch beschikbaar, dus u moet het inschakelen via de ontwikkelaarsinstellingen van uw Windows-apparaat.

U kunt dit doen door naar Instellingen > Update en beveiliging > Voor ontwikkelaars te gaan. Schakel de ontwikkelaarsmodus in en bevestig de vraag door Ja te selecteren.

Zoek vervolgens naar de Windows-functies (u kunt de zoekbalk Zoek een instelling gebruiken) en kies de optie 'Windows-functies in- of uitschakelen'.

Dit geeft je een pop-upvenster waarin je de functie "Windows Subsystem for Linux" zou moeten zien. Markeer het vakje naast dat item en klik op OK om het te installeren.

Het duurt een minuut of twee, omdat het proces bestaat uit het zoeken naar relevante bestanden voor de functie en het toepassen van de wijzigingen, maar u wordt al snel gevraagd uw machine opnieuw op te starten zodra het proces is voltooid. Na het opnieuw opstarten zou BASH al beschikbaar moeten zijn in de opdrachtprompt en PowerShell.

Daarna moet je Ubuntu aanschaffen om toegang te krijgen tot het Linux-bestandssysteem en direct Linux-opdrachten en -hulpmiddelen en Bash-scripts of .sh-bestanden uit te voeren in een Linux-omgeving op Windows. Ga hiervoor naar de Microsoft Store en download Ubuntu, waarmee je de Linux-distro krijgt.

Open daarna Ubuntu zodat het de installatie op de harde schijf kan uitvoeren en kan integreren met de WSL. Vervolgens wordt u gevraagd een gebruikersnaam en wachtwoord aan te maken om het proces te voltooien.

Je kunt ook een distro voor Windows installeren met behulp van de Power shell-opdracht “Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing” of het curl-commando “curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604“. Werk vervolgens de Linux-distro bij en upgrade deze door extra pakketten te downloaden met behulp van de opdrachten "sudo apt update && sudo apt upgrade. '

Zodra dit is opgelost, kunt u proberen shell-scripts uit te voeren in de Windows-opdrachtprompt. Zoek de scriptbestanden die als tekstbestanden op uw systeem zijn opgeslagen en klik met de rechtermuisknop op een lege ruimte in de map waar de scriptbestanden zich bevinden terwijl u de Shift-toets ingedrukt houdt.

Dit geeft je de optie om “Open de opdrachtprompt hier” of “Open hier het PowerShell-venster.” Selecteer die optie, typ “bash” in het opdrachtpromptvenster of de PowerShell-interface en druk op Enter om de distro-prompt te starten.

Dit brengt je naar de bash-shell, wat betekent dat de Windows-omgeving is veranderd naar BASH. Dit bevestigen is de nieuwe regel die in het terminalvenster verschijnt. Ten slotte kunt u beginnen met het typen van het .sh-bestand in het terminalvenster en op Enter drukken.

Cygwin

Cygwin heeft een verzameling GNU- en Open Source-tools die functionaliteit bieden die vergelijkbaar is met een Linux-distributie op Windows. Door het te gebruiken, kun je Unix- of Linux-applicaties of -programma's compileren en deze uitvoeren op een Microsoft Windows-besturingssysteem (OS) vanuit een Linux-achtige interface die vergelijkbaar is met Linux BASH.

Cygwin is gratis, dus je kunt het downloaden van De officiële website van Cygwin. Download en start de installatie van het bestand setup-x86_64.exe. Er zijn twee versies van Cygwin: de 32-bits en 64-bits versies. Desalniettemin raden we aan om de laatste te gebruiken, aangezien "een volledige 32-bits Cygwin-distro niet meer haalbaar is en naar alle waarschijnlijkheid op willekeurige plaatsen zal mislukken vanwege een probleem met de fork-systeemaanroep", zoals vermeld op de website.

De 32-bits Cygwin is alleen bedoeld voor beperkte scenario's, ook als er geen manier is om een ​​64-bits versie van Cygwin uit te voeren. Zodra het GUI-installatieprogramma (dat kan worden uitgevoerd om een ​​volledige Cygwin-installatie te downloaden) is gedownload, opent u het en volgt u de instructies op elk scherm om Cygwin te installeren. De site heeft ook een gedetailleerd document voor het opzetten ervan.

Als u klaar bent, opent u de Cygwin64-terminal via de snelkoppeling die het installatieprogramma op het bureaublad zal produceren. Geef het commando "cd C:Gebruikers/Gebruikersnaam/Desktop” om de map te wijzigen waarin het scriptbestand is opgeslagen. Daarna kunt u beginnen met het uitvoeren van shellscripts. Typ gewoon de SH-bestandsnaam samen met de .sh-extensie (bijv. sh test.sh).

Git

Git is een gratis en open-source versiebeheersysteem dat ideaal is voor een groep programmeurs die samenwerken of coördineren aan een broncodeproject. Het kan de wijzigingen die u in de loop van de tijd aanbrengt in bestanden bijhouden, zodat u kunt zien wie op verschillende tijdstippen wijzigingen in een bestand heeft aangebracht en bestanden terugzetten naar een eerdere staat.

Linux- en macOS-pc's hebben de vooraf geïnstalleerde Git als opdrachtregeltool, maar Git heeft ook versies voor alle besturingssystemen die kunnen worden gedownload op zijn officiële website. In dit geval zou je willen hebben Git voor Windows. Na het downloaden opent u het installatiebestand om de Git-installatie te starten.

Volg de instructies die op het scherm van het apparaat zullen verschijnen naarmate de installatie vordert, en zorg ervoor dat de optie “Git bash Here” aangevinkt is wanneer een pop-upvenster verschijnt waarin de gewenste configuratie voor de componenten wordt bevestigd. Wat de andere opties voor de rest van de componenten betreft, laat ze standaard aangevinkt. Blijf gewoon Volgende selecteren totdat u bij de knop Installeren komt. Sluit de installatiewizard en open Git Bash door ernaar te zoeken op uw computer. Je zult andere Git-gerelateerde apps zien, maar klik op degene die 'Git Bash' zegt.

Eenmaal gelanceerd, moet u de map wijzigen naar waar uw bestand zich bevindt met behulp van de opdracht "cd desktop". U kunt ook naar de map gaan waar het SH-bestand is opgeslagen en met de rechtermuisknop op de map klikken om de optie "Git Bash Here" te selecteren. Wanneer de Git-opdrachtterminal of Git Bash verschijnt, kun je beginnen met het uitvoeren van de SH-opdrachten. Typ gewoon de SH-bestandsnaam samen met de .sh-extensie (bijv. sh test.sh).

Gebruikersforum

0 berichten