从文件中调用变量

时间:2012-11-02 17:24:29

标签: file variables store cat

我需要检索已存储在文件中的变量。我正在捕获变量以安装prostgress和其他一些程序。这是我用来在安装脚本开头创建variables.sh文件的脚本。

#!/斌/庆典    #init

function pause(){    读-p“$ *”    }

echo“输入数据库用户名”    echo“”

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 个答案:

答案 0 :(得分:0)

也许你正在寻找bash source 命令?

如果文件 variables.sh 包含行

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

然后你可以执行

source variables.sh

从bash shell脚本中读取并执行此文件中的命令。这会将值分配给shell变量$dbuser$dbname等。

请注意,如果值包含空格,则应将值括在引号中。

示例如何从文件中读回变量:

#!/bin/bash

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