2012-11-02 37 views
1

我需要檢索已存儲在文件中的變量。我正在捕獲一個安裝prostgress和一些其他程序的變量。以下是我在安裝腳本開始時用來創建variables.sh文件的腳本。從文件調用變量

#!/斌/慶典 #初始化

功能暫停(){ 讀-p 「$ *」 }

回聲 「輸入數據庫用戶名」 回聲 「」

read dbuser 

echo " " 
echo " Enter name of database " 
echo " " 

read dbname 

echo " " 
echo " Enter db password " 
echo " " 

read pws 

echo " " 
echo " Enter Port Number " 
echo " " 

read port 

echo " " 
echo " Enter URL i.e. my.hospital.com:8191 or 78.12.156.234:8191 " 
echo " " 

read url 

cat > variables.dat << EOF 

dbuser=$dbuser 
dbname=$dbname 
pws=$pws 
port=$port 
url=$url 

EOF 

if [ -f variables.sh ]; 

    then 
    echo " Data stored ready for next phase " 

    else 

    echo " Data not stored - exit program start again " 
    echo " " 
    pause " Press [CTL] [Z] to exit the program now " 

fi 

chmod +x variables.sh 

exit 

在執行我寫的其他模塊的過程中。我希望能夠打開或調用變量文件並將變量傳遞給正在執行的腳本。因此,我的pac-install.sh將包含variables.sh文件並將其內容傳遞給pac-install.sh腳本,並能夠使用dbuser = $ dbuser。我希望這更具體。

感謝您的任何幫助。

+1

也許東西快速和骯髒? 'cat文件| grep a = | sed s/a = //' – Austin

+0

奧斯汀很快就讓我變量,但是我怎樣才能讓這個變量讀取? – user1794918

+0

對不起,我的意思是如何將變量傳遞給讀命令? – user1794918

回答

0

也許是bash 來源命令是你在找什麼?

如果文件variables.sh包含線

dbuser="the user" 
dbname="the name" 
... 

那麼你可以從一個bash shell腳本執行

source variables.sh 

閱讀並從該文件執行的命令。這會將這些值分配給shell變量$dbuser,$dbname等。

請注意,如果值包含空格,則應將值放在引號中。

如何讀回從該文件的變量:

#!/bin/bash 

source variables.sh 
echo "dbuser=$dbuser" 
echo "dbname=$dbname" 
+0

你能發表一個如何讀取和執行的例子嗎?我在腳本中包含了variables.sh,但無法將信息傳遞給運行腳本。謝謝! – user1794918

+0

@ user1794918:我在答案中添加了一個示例。 –

+0

謝謝!就是這樣。我現在有腳本工作。 – user1794918