Skip to content

Linux ‘set’-opdracht voor Bash-omgevingsvariabelen

15 de september de 2021
wV0w0KSTTj 7338f99bd16a46b9813d0a056bad3334

De set commando in Linux activeert of wist specifieke vlaggen of instellingen binnen de Bash shell-omgeving. Andere shells gebruiken verschillende methoden om lokale variabelen in te stellen.

Het Set-commando gebruiken

Met het set-commando kun je bepaalde vlaggen en functies in Bash besturen om het gedrag van je scripts te bepalen. Deze bedieningselementen helpen ervoor te zorgen dat uw scripts het beoogde pad volgen en dat bepaalde eigenaardigheden in Bash geen problemen worden. Begin met iets simpels. Stel dat je het standaardgedrag van Bash voor het overschrijven van bestanden wilt uitschakelen, de ‘-C’-vlag zal dit voorkomen. Bijvoorbeeld, het uitvoeren van: set -C

type = “code”> configureert Bash om een ​​bestaand bestand niet te overschrijven bij uitvoeromleiding met behulp van >, >&, en <> wordt doorgestuurd naar een bestand. Standaard staat Bash omgeleide uitvoer toe om bestaande bestanden te overschrijven.

Zoals u kunt zien, verschijnt er een bericht om u te laten weten dat het bestand niet kan worden overschreven. Deze is vooral handig bij het debuggen van uw scripts en u wilt niet per ongeluk bestaande gegevens kwijtraken. Vervolgens wilt u misschien het automatisch genereren van bestandsnamen uitschakelen, beter bekend als ‘globbing’. Globbing kan super handig zijn bij het vinden van bestanden, maar het kan ook voor serieuze problemen zorgen als een bedrieglijk personage op de verkeerde plaats in je script terechtkomt. De vlag ‘-f’ schakelt het uit. set -f

Vervolgens kunt u proberen iets uit te voeren als: ls *

Normaal gesproken zou je een stapel bestanden en mappen op je scherm zien verschijnen, maar nu ontvang je alleen een bericht dat je laat weten dat zo’n map niet bestaat.

Linux set-commando schakel globbing uit

Als je een script aan het debuggen bent, wil je waarschijnlijk niet dat een gedeeltelijk functioneel script blijft draaien, wat chaos veroorzaakt of onjuiste resultaten oplevert. U kunt de vlag ‘-e’ inschakelen om een ​​script onmiddellijk te stoppen als er iets misgaat. set -e

Op een vergelijkbare manier kun je met het set-commando ook zien welk commando in je script wordt uitgevoerd, gevolgd door het resultaat. Hierdoor kunt u nauwkeuriger debuggen door u in realtime te laten zien waar uw script zich bevindt en wat het resultaat van elke opdracht is. Deze superhandige functionaliteit komt van de vlag ‘-x’. stel -x

Je kunt het uitproberen met een eenvoudige while-lus om elke iteratie te zien. x=10
terwijl [ $x -gt 0 ]; doen
x=$[ $x-1 ]
echo $x
slapen 2
gedaan

Let op hoe het afloopt. U krijgt een directe afdruk van elke regel. Vervolgens zal Bash de regel uitvoeren en u een afdruk van het resultaat geven, indien aanwezig, en doorgaan naar de volgende regel. Deze methode kan enorm veel tijd besparen bij het debuggen van uw scripts.

Linux set commando met x vlag

Voor het geval je het hebt gevolgd, heb je waarschijnlijk gemerkt dat de veranderingen die met het set-commando zijn teweeggebracht, permanent lijken. Zij zijn niet. Gebruik het plusteken (+) voor een van de vlaggen om ze uit te schakelen. stel +x . in

Voor meer informatie over hoe het set-commando werkt en wat het kan, kun je altijd het volgende uitvoeren: set –help

Voor meer uitgebreid advies over het configureren van ingebouwde variabelen voor Bash, bekijk de instructies van de Bash-handleiding over: set.