Hoe .sh in Linux te gebruiken

In Linux zijn bestanden met de extensie .sh meestal shell-scripts, dit zijn programma's die worden geïnterpreteerd door de opdrachtshell. Shell-scripts hoeven geen extensie te hebben. In feite kunnen ze helemaal niets worden genoemd. Om historische redenen hebben ze echter vaak de extensie .sh .

Shell-scripts uitvoerbaar maken

Shell-scripts moeten worden gemarkeerd als uitvoerbaar voordat u ze kunt uitvoeren. U kunt de rechten van een bestand controleren, ook wel de bestandsmodus genoemd, door een lange lijst met de ls -l- opdracht te bekijken. Als u de bestandsnaam opgeeft, ontvangt u de informatie alleen voor dat bestand. Hier hebben we bijvoorbeeld een bestand met de naam somefile en we bekijken de permissies met de opdracht ls -l somefile :

De tien tekens " -rw-r - r-- " vertegenwoordigen de bestandsmodus van een of meerdere bestanden. Zie Wat zijn machtigingen en hoe werken deze? Voor meer informatie over bestandsmachtigingen.

Hier geeft de bestandsmodus aan dat we een bestand kunnen lezen en schrijven, maar het niet kunnen uitvoeren. We kunnen de Execute-machtiging instellen met de opdracht chmod, die de bestandsmodus wijzigt:

Het commando chmod u + x somefile stelt het execute permissiebit in voor de eigenaar van het bestand. U kunt zien dat de machtigingsregel nu een x op de vierde plaats heeft, die de uitvoerrechten van de eigenaar voor het bestand weergeeft. Merk ook op dat de bestandsnaam in kleur wordt weergegeven (hier wordt deze in groen weergegeven). De kleur kan op uw systeem verschillen, maar veel Linux-distributies zijn geconfigureerd om uitvoerbare bestanden aan te geven met een andere kleur wanneer u de opdracht ls uitvoert.

U kunt hetzelfde proces volgen voor elk .sh- scriptbestand dat u mogelijk moet uitvoeren. Als u bijvoorbeeld een aangepast script schrijft en dit myscript.sh noemt, moet u chmod u + x myscript.sh uitvoeren voordat u het probeert uit te voeren.

Een script uitvoeren vanaf de opdrachtregel

Als u een shell-script wilt uitvoeren, moet u de padnaam van het script opgeven bij de opdrachtprompt. Als het script bijvoorbeeld de naam install.sh heeft en het zich in uw werkdirectory bevindt, kunt u het uitvoeren met de onderstaande opdracht.

 ./install.sh 

De bovenstaande opdrachten vertellen de shell: "voer het bestand install.sh uit dat zich in de huidige map bevindt." Als install.sh zich in de map myscripts in uw basismap bevindt, kunt u dit uitvoeren met de onderstaande opdracht.

 ~ / Myscripts / install.sh 

Opmerking: geef de padnaam op naar het scriptbestand (in plaats van alleen inshal.sh in te typen) als beveiligingsmaatregel: de shell wil controleren of deze de juiste install.sh uitvoert, dus moet u exact de padnaam opgeven plaats.

De enige uitzondering is als uw script zich in een map bevindt die wordt vermeld in de omgevingsvariabele van uw systeemomgeving. Als dat het geval was, zou u het bestand kunnen uitvoeren door de opdracht install.sh uit te voeren .