从 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" )
我有一个包含以下数据的文件名输入文件:
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" )