2015-10-01 165 views
1

我有一個奇怪的情況下,我使用的zsh全職,任何的bash腳本我運行不正常採摘環境變量。很顯然,我並不指望bash的回暖在zsh中的環境中定義的包膜增值經銷商,所以我使用~/.bashrc~/.bash_profile,但這並不能工作。bash腳本不拾取環境變量

例如,這裏有一個測試腳本:

#!/bin/bash 

echo $MYTEST 

我已經添加了此行既~/.bashrc~/.bash_profile覆蓋我的基地:

export MYTEST="hello" 

運行時,我只是得到了一個空白行劇本。

PS:我知道運行. ./testscript可以工作,但這不是一個選項,因爲它是一個系統範圍的腳本,無法提取env變量。

+4

系統運行的腳本不運行特定於用戶的初始化文件。 –

+0

那麼爲什麼'bash -c'echo $ LESS''顯示我的'less'選項?但其他變量不起作用? – ffxsam

+0

從您的shell會話中手動運行'bash -c'不是系統運行腳本。這仍然和你一樣狂暴。但是,如果你在'.bashrc'/etc中有變量。那麼這些文件不能以這種方式工作(而'$ LESS'),那麼你的初始化文件有些不正確(或者你沒有正確使用'.bashrc' /'.bash_profile')。 –

回答

3

哎呀。也許我應該嘗試在我的~/.oh-my-zsh/custom/vars.zsh中使用export VAR=val,而不是僅僅使用VAR=val

+1

起初我很喜歡「什麼,怎麼會是這個答案,甚至有幫助?!我不知道能不能...哦,哦,我忘了'export'爲好,aaaaand現在它的固定」 - 謝謝! – dwanderson