2015-02-23 68 views
1

我想用shell腳本將變量導出到linux。我的殼紙條是如下:使用shell腳本導出變量到linux

export dbHost=server01 
export dbName=someName 

當我運行腳本,我得到以下輸出

"eclare -x dbHost=" server01 
declare -x dbName=" someName " 

後打印這些變量,以便它正確導出的數據庫名,但不能DBHOST。如果我只保留第一行

export dbHost=server01 

在腳本中,然後它會正確打印dbHost。 我在這裏做錯了什麼?

+0

@anubhava通過輸入此命令「。./fileName.sh」(不含引號) – Charychap 2015-02-23 14:16:34

回答

1

我懷疑你有DOS行文件結尾,你可以測試:

cat -t file.sh 

,將顯示是這樣的:

export dbHost=server01^M 
export dbName=someName^M 

要解決此問題,運行dos2unixfile.sh

+1

感謝Anubhava,那就是問題 – Charychap 2015-02-23 14:28:11

+0

不客氣,很高興它解決了。 – anubhava 2015-02-23 14:28:39

0

當我行書

變量後打印這些變量,你export只會是你的腳本,並在子shell運行shell內可見。如果您想在腳本終止後看到效果,則必須使用source腳本。

可以在超級用戶的回答中找到這個question的解釋。

+0

我使用export -p命令檢查變量 – Charychap 2015-02-23 14:17:11