2016-12-28 35 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'文件來自與啓動的shell相同的環境。這不是一個在自己的環境中運行的腳本。 – Kusalananda