从 bash 中的文件获取变量

Get variables from a a file in bash

我有一个包含以下数据的文件名输入文件:

 database=mydb
 table=mytable
 partitions=p1,p2,p3

我将此文件作为第一个参数传递如下:

 bash mybashfile.sh inputfile

我想在我的 bash 脚本中使用这个文件,输入数据库,table 和分区作为变量

我尝试将 myfile 的全部内容放入一个变量中

  #!/bin/bash
  var=$(cat ) 
  echo $var   

我是 bash 脚本的新手,所以我需要帮助

考虑使用 source,这将从该文件加载变量

#!/bin/bash
source ""
echo "$database"
# mydb
echo "$table"
# mytable
echo "$partitons"
# p1,p2,p3

有关 source 的更多信息,请参阅此 superuser-question

您可以使用 while 循环从文件中读取键值对:

#!/bin/bash
declare -A kv     # declare an associative array

while IFS="=" read -r k v; do
    kv["$k"]="$v"
done < "file"

declare -p kv     # print the array

打印:

declare -A kv=([table]="mytable" [database]="mydb" [partitions]="p1,p2,p3" )