Skip to content

Linux ’set’ kommando för Bash -miljövariabler

20 de september de 2021
wV0w0KSTTj 7338f99bd16a46b9813d0a056bad3334

De uppsättning kommando i Linux aktiverar eller rensar specifika flaggor eller inställningar inom Bash -skalmiljön. Andra skal använder olika metoder för att ställa in lokala variabler.

Använda kommandot Set

Med kommandot set kan du styra vissa flaggor och funktioner i Bash för att bestämma beteendet hos dina skript. Dessa kontroller hjälper till att säkerställa att dina skript följer den avsedda sökvägen och att vissa finesser i Bash inte blir till problem. Börja med något enkelt. Säg att du vill inaktivera Bashs standardbeteende för att skriva över filer, ”-C” -flaggan förhindrar det. Exempelvis kör: set -C

type = ”code”> konfigurerar Bash att inte skriva över en befintlig fil vid omdirigering av utdata med >, > &, och <> omdirigeras till en fil. Som standard tillåter Bash omdirigerad utdata att skriva över befintliga filer.

Som du kan se visas ett meddelande om att filen inte kan skrivas över. Den här är särskilt användbar vid felsökning av dina skript, och du vill inte av misstag förlora befintlig data. Därefter kanske du vill inaktivera automatisk filnamnsgenerering, mer allmänt känd som ”globbing”. Globbing kan vara super användbart för att hitta filer, men det kan också orsaka allvarliga problem om en oseriös karaktär hamnar på fel plats i ditt manus. Flaggan ’-f’ inaktiverar den. set -f

Sedan kan du prova att köra något som: ls *

Normalt ser du en hög med filer och mappar som dumpas på din skärm, men nu får du bara ett meddelande om att det inte finns någon sådan katalog.

Linux set kommando inaktivera globbing

När du felsöker ett skript vill du förmodligen inte att ett delvis funktionellt skript ska fortsätta att fungera, orsaka kaos eller ge felaktiga resultat. Du kan aktivera ”-e” -flaggan för att stoppa ett skript omedelbart när något går fel. set -e

På en liknande not kan set -kommandot också se vilken kommando i ditt manus som körs följt av resultatet. Detta låter dig mer exakt felsöka genom att ge dig en realtidsavläsning av var ditt skript är och vad resultatet av varje kommando är. Denna supernyttiga funktionalitet kommer från ”-x” -flaggan. set -x

Du kan prova det med en enkel while -loop för att se varje iteration. x = 10
medan [ $x -gt 0 ]; do
x = $[ $x-1 ]
eko $ x
sova 2
Gjort

Lägg märke till hur det blir. Du får en direkt utskrift av varje rad. Sedan kommer Bash att köra linjen och ge dig en utskrift av resultatet, om något, och gå vidare till nästa rad. Denna metod kan vara en massiv tidsbesparare när du felsöker dina skript.

Linux set -kommando med x -flagga

Om du har följt med har du förmodligen märkt att de ändringar som åstadkommits med kommandot set verkar permanenta. Dom är inte. Använd plustecknet (+) före någon av flaggorna för att inaktivera dem. set +x

För mer information om hur set -kommandot fungerar och hur det kan göra kan du alltid köra: set –help

För mer omfattande råd om konfigurering av inbyggda variabler för Bash, läs Bash-manualens instruktioner om uppsättning.