2016-12-28 11 views
3

PATHは、次のコマンドに対して一時的に設定できます。また、PATHはスクリプト内で設定できます。このスクリプトは永続的に(その端末またはセッション内に)残っています。スクリプトでグローバルに有効なPATHを設定できますが、スクリプトの終了後には設定できません。一時的にbashスクリプトでのみPATHを設定するには?

例:

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 

答えて

6

それは単に真実ではありません。 スクリプトを書いて、$ PATH変数を変更した場合、変更はスクリプトでのみ生きる:

vi test.sh 

ファイル内:

#!/bin/bash 

export PATH="$PATH: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 

同じ出力。変更はスクリプト内でのみ有効です!

+0

まあまあ...私はまったく間違っているようです...しかし、なぜ、輸出は.bashrcで永久ですか? (申し訳ありませんが別の質問かもしれません) – akai

+2

@akai '.bashrc'ファイルは、起動しているシェルと同じ環境で提供されています。独自の環境で動作するスクリプトではありません。 – Kusalananda

関連する問題