source är ett praktiskt inbyggt skalkommando som accepterar argument, analyserar kommandon i ett skript och kör dem i skalmiljön. Filens innehåll läses av källa och skickas sedan vidare till Tool Command Language (TCL)-tolken, som utför kommandona.

Låt oss lära oss hur man använder source för att köra kommandon och arbeta med skalmiljöer på Linux, tillsammans med en kort förklaring av hur det skiljer sig från bash-kommandot.

Använd källa för att köra kommandon i en fil

För att använda källkommandot måste du först skapa en exempelfil och fylla i den med några skalkommandon. Börja med att skapa en ny fil med pekkommandot. Öppna filen i en textredigerare som du väljer och skriv några grundläggande skalkommandon.

Rörtesta.Text
vitesta.Text

# Skriv kommandona i textfilen:
eko "Hallå!"
pwd
ls

# Källa filen med antingen käll- eller punktsyntaxen
. testa.Text
källatext.Text

Skriv ut textfilen och fortsätt att skicka den som ett argument till källkommandot. Systemet kommer att utföra kommandona i filen och returnera en utdata.

Nu när du vet grunderna om hur man använder källkod, låt oss försöka ändra Bash-skalmiljön. Men innan du fortsätter måste du ha en grundläggande förståelse för miljövariabler i Linux.

Använd källkommandot för att uppdatera Bash Shell-miljön

På Linux är miljövariabler ärvda men oföränderliga. Om du kör ett Bash-skalskript som modifierar en miljövariabel $TEST, kommer skriptet att skapa en ny, forked shell-process, och modifiering av $TEST kommer att ske inom den istället för den ursprungliga Bash miljö.

Den underordnade processen kommer inte att kunna ändra den överordnade processens miljö. Den kan bara ändra sin egen miljö. Låt oss förstå detta med ett praktiskt exempel:

export TEST="deb"
vi exempel

# Skriv dessa kommandon i filen
export TEST="säng"
eko $TEST

# Skriv ut filen, gör den körbar och kör den sedan
chmod +x exempel
./exempel # detta kommer att returnera "säng"
eko $TEST # detta kommer att returnera "deb"

Här kommer källkommandot in i bilden. Med källkommandot kan du köra ett skript i samma skalmiljö, som annars skulle ha splittrats. Så om du hämtar ett skript som modifierar miljövariabler kommer det att göra ändringarna för Bash-skalmiljön.

För att testa det, skriv kommandona i kodrutan ovan i en ny fil och använd källkommandot istället för att göra det körbart.

# Skapa en ny fil och redigera den
vi testa fil
. test_fil
eko $TEST # Detta kommer att returnera "säng"

Som du kan se, med hjälp av källkommandot, kunde du uppdatera miljövariablerna för den överordnade processen. Detta är det primära användningsfallet för källkommandot, d.v.s. för att modifiera den överordnade miljön.

Det är alla steg du behöver för att uppdatera Bash-skalmiljön med källkommandot.

Skillnaden mellan Linux bash och källkommandon

Skillnaden mellan Linux bash och källkommandon är att när du kör ett skript med bash-kommandot, säger det till Linux kärna för att skapa en ny Bash-process för att läsa och köra skriptet, kopiera utdata till den ursprungliga skalprocessen och visa den.

Men källkommandot är det ett skal inbyggt som läser och utvärderar en fil inom den aktuella skalprocessen. Så alla ändringar som gjorts av skriptet kommer att behållas i Bash-skalet.

Felsökning av källkommandofel

I vissa Linux-system kan du stöta på felet "källa hittades inte" när du försöker använda källkommandot. Du kan åtgärda det här felet på två sätt:

1. Byt skal

Vissa skal stöder inte källkommandot. I så fall måste du ändra din skalmiljö med chsh -s ($vilket skalnamn) kommando.

Sätt igång en ny terminal efteråt byter ditt skal, och försök använda källkommandot. Om det nya skalet stöder sourcing, bör det fungera felfritt.

2. Använd punkt-/periodsyntaxen

Vissa skalmiljöer stöder inte "källa"syntax men alternativet"." syntax. "Källsyntaxen" är en synonym för punkt i Bash. Men detta fungerar inte i POSIX-skalet, så för maximal kompatibilitet, använd periodsyntaxen.

Grundläggande Linux-kommandon du bör känna till

Linux-skalkommandon är ett utmärkt sätt att interagera med systemet med hjälp av terminalen. De är själva kärnan i att använda *NIX-system.

Även om du inte behöver känna till alla kommandon, kommer det säkert att visa sig fruktbart att vara bekant med några användbara kommandon när du vågar dig djupt in i Linux-världen.