2016-12-28 2 views
3

PATH kann vorübergehend für den folgenden Befehl festgelegt werden. Außerdem kann PATH in einem Skript festgelegt werden, das permanent (in diesem Terminal oder in dieser Sitzung) verbleibt. Wie kann ich PATH festlegen, das im Skript global wirksam ist, aber nicht nachdem das Skript beendet wurde?Wie setze ich PATH nur vorübergehend im Bash-Skript?

Beispiel:

PATH=$PATH:/path1 path1 is valid only for this line 
export PATH=$PATH:/path2 
path2 is valid for this line 
and this line too 
I like it 

exit 

> path2 is still valid after the script finishes 
> and when I type commands here manually 
> I don't like it 

Antwort

6

es ist einfach nicht wahr. Wenn Sie ein Skript schreiben, und die $ PATH-Variable ändern, leben die Änderung nur im Skript:

vi test.sh 

in der Datei:

#!/bin/bash 

export PATH="$PATH:test" 

let-Test:

echo $PATH 
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/matteo/.local/bin:/home/matteo/bin:./bin:/home/matteo/.local/bin:/home/matteo/bin:./bin 

chmod ug+x test 
./test 
echo $PATH 
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/matteo/.local/bin:/home/matteo/bin:./bin:/home/matteo/.local/bin:/home/matteo/bin:./bin 

gleichen Ausgabe. Die Änderung ist nur innerhalb des Skripts wirksam!

+0

Nun ... es scheint, ich bin völlig falsch ... aber warum ist 'export' in .bashrc dauerhaft? (Entschuldigung, das könnte eine andere Frage sein) – akai

+2

@akai Die Datei '.bashrc' stammt aus derselben Umgebung wie die Shell, die gerade gestartet wird. Es ist kein Skript, das in seiner eigenen Umgebung ausgeführt wird. – Kusalananda

Verwandte Themen