1

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

#!/bin/bash # 初始化

函数暂停(){读取-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。我希望这更具体。

谢谢你的帮助。

4

1 回答 1

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"
于 2012-11-03T10:29:54.710 回答