【问题标题】:Call variables from a file从文件中调用变量
【发布时间】:2012-11-02 17:24:29
【问题描述】:

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

#!/bin/bash # 初始化

函数暂停(){ 读取 -p "$*" }

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。我希望这更具体。

感谢您的帮助。

【问题讨论】:

  • 也许是一些又快又脏的东西? cat file | grep a= | sed s/a=//
  • Austin 很快就能得到变量,但我如何才能将该变量传递给读取?
  • 对不起,我的意思是如何将变量传递给读取命令?
  • 你能提供一个具体的例子来说明“捕获安装过程的变量”是什么意思吗?

标签: file variables store cat


【解决方案1】:

也许 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"

【讨论】:

  • 您能否发布一个如何完成读取和执行的示例?我已将 variables.sh 包含在脚本中,但无法将信息传递给正在运行的脚本。谢谢!
  • @user1794918:我在答案中添加了一个示例。
  • @user1794918:不客气! - 请不要忘记通过单击复选标记大纲“接受”答案,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
相关资源
最近更新 更多