source er en praktisk indbygget shell-kommando, der accepterer argumenter, analyserer kommandoer i et script og udfører dem i shell-miljøet. Filens indhold læses efter kilde og sendes derefter videre til Tool Command Language (TCL) fortolkeren, som udfører kommandoerne.
Lad os lære, hvordan man bruger source til at udføre kommandoer og arbejde med shell-miljøer på Linux, sammen med en kort forklaring på, hvordan den adskiller sig fra bash-kommandoen.
Brug kilde til at udføre kommandoer i en fil
For at bruge kildekommandoen skal du først oprette en eksempelfil og udfylde den med nogle shell-kommandoer. Start med at oprette en ny fil med berøringskommandoen. Åbn filen i en teksteditor efter eget valg, og skriv et par grundlæggende shell-kommandoer.
røre vedprøve.txt
viprøve.txt# Skriv kommandoerne i tekstfilen:
ekko "Hej!"
pwd
ls
# Kilde filen med enten kilde- eller punktsyntaks
. prøve.txt
kildetekst.txt
Skriv tekstfilen ud, og fortsæt med at sende den som et argument til kildekommandoen. Systemet vil udføre kommandoerne i filen og returnere et output.
Nu hvor du kender det grundlæggende i, hvordan du bruger kildekode, lad os prøve at ændre Bash-shell-miljøet. Men før du går videre, skal du have en grundlæggende forståelse af miljøvariabler i Linux.
Brug kildekommandoen til at opdatere Bash Shell-miljøet
På Linux er miljøvariabler nedarvet, men uforanderlige. Hvis du udfører et Bash shell script, der ændrer en miljøvariabel $TEST, vil scriptet afføde en ny, forked shell-proces, og ændring af $TEST vil finde sted i den i stedet for den originale Bash miljø.
Den underordnede proces vil ikke være i stand til at ændre den overordnede process miljø. Den kan kun ændre sit eget miljø. Lad os forstå dette med et praktisk eksempel:
eksport TEST="deb"
vi eksempel# Indtast disse kommandoer i filen
eksport TEST="seng"
ekko $TEST
# Skriv filen ud, gør den eksekverbar, og kør den derefter
chmod +x eksempel
./eksempel # dette vil returnere "seng"
ekko $TEST # dette vil returnere "deb"
Her er hvor kildekommandoen kommer i spil. Med kildekommandoen kan du udføre et script i det samme shell-miljø, som ellers ville være blevet gaflet. Så hvis du køber et script, der ændrer miljøvariabler, vil det foretage ændringerne for Bash shell-miljøet.
For at teste det, skriv kommandoerne i kodeboksen ovenfor i en ny fil og brug kildekommandoen i stedet for at gøre den eksekverbar.
# Opret en ny fil og rediger den
vi prøve fil
. test_fil
ekko $TEST # Dette vil returnere "seng"
Som du kan se, var du ved at bruge kildekommandoen i stand til at opdatere miljøvariablerne for den overordnede proces. Dette er den primære anvendelse af kildekommandoen, dvs. at ændre det overordnede miljø.
Det er alle de trin, du behøver for at opdatere Bash-shell-miljøet med kildekommandoen.
Forskellen mellem Linux bash og kildekommandoer
Forskellen mellem Linux bash og source-kommandoer er, at når du udfører et script med bash-kommandoen, fortæller det Linux kerne for at skabe en ny Bash-proces til at læse og udføre scriptet, kopiere outputtet til den originale shell-proces og vise det.
Men kildekommandoen er en skal indbygget der læser og evaluerer en fil inden for den aktuelle shell-proces. Så alle ændringer foretaget af scriptet vil blive bevaret i Bash-skallen.
Fejlfinding af kildekommandofejl
I nogle Linux-systemer kan du støde på fejlen "kilde ikke fundet", mens du forsøger at bruge kildekommandoen. Du kan rette denne fejl på to måder:
1. Skift skallen
Nogle skaller understøtter ikke kildekommandoen. I så fald bliver du nødt til at ændre dit shell-miljø med chsh -s ($hvilket shell_name) kommando.
Tænd en ny terminal efter skifter din skal, og prøv at bruge kildekommandoen. Hvis den nye skal understøtter sourcing, burde den fungere fejlfrit.
2. Brug punkt-/periodesyntaksen
Nogle shell-miljøer understøtter ikke "kilde"syntaks men alternativet"."syntaks. "Kilde"-syntaksen er et synonym for prik i Bash. Men dette virker ikke i POSIX-skallen, så brug periodesyntaksen for maksimal kompatibilitet.
Grundlæggende Linux-kommandoer, du bør kende
Linux-shell-kommandoer er en fantastisk måde at interagere med systemet ved hjælp af terminalen. De er selve essensen af at bruge *NIX-systemer.
Selvom du ikke behøver at kende alle kommandoerne, vil det at være bekendt med nogle få nyttige helt sikkert vise sig frugtbart, når du begiver dig dybt ind i Linux-verdenen.