2015-02-23 159 views
0

我有一個.sh文件,它可以在我的shell中本地設置一些環境變量source my_env.sh如何使用shell腳本設置全局環境變量.sh

#!/bin/sh 
echo "Setting up local environment variables" 
export MY_URL="http://domain.com" 
echo "Done" 

這隻設置該會話的變量。這意味着我在不同會話下運行的Python Celery和Supervisor應用程序無法訪問它們。我知道我可以在用戶下運行它們,但是我想知道如果在Ubuntu上使用相同的shell腳本,如果我可以設置變量,以便它們可以全局訪問所有應用程序,無論用戶或會話如何?

回答

1

根據Ubuntu env variables doc的最好的辦法是

用於影響系統作爲一個整體(而不是僅僅一個特定的用戶)的環境變量設置一個合適的文件是/ etc /環境

這是假設你不介意讓他們爲整個機器設置。

+0

那麼這是如何工作的,我是否在該目錄中添加文件? – Prometheus 2015-02-23 17:14:04

+0

cd/etc/environment不是Ubuntu上的目錄14 – Prometheus 2015-02-23 17:16:58

+0

/etc/environment不是目錄而是文件。所以打開它,並添加以下行: MY_URL =「....」 – tgo 2015-02-23 17:17:27

2

將變量導出到「/ etc/profile」中。

注意:這將使每個shell會話對於任何用戶都是全局的。如果您希望爲特定用戶的每個會話設置此變量,請將其設置爲該用戶的「〜/ .profile」。

+0

那麼我需要添加一個文件到這個文件夾? – Prometheus 2015-02-23 17:14:41

0

如果您使用的是bashrc或zshrc,您可以獲取跨會話設置環境變量的shell文件或精確加載每個會話中的所有環境變量。

source location/shell-script-sets-env.sh 

zshrc和bashrc在您的$ HOME目錄中可用。或〜/ .zshrc和〜/ .bashrc。當前外殼可以通過查看

echo $SHELL 

看看setting env permanently將其添加到配置文件。

相關問題