Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays bash脚本-如何有效地迭代文本文件中的键值对列表以加载变量_Arrays_Bash_Unix_For Loop - Fatal编程技术网

Arrays bash脚本-如何有效地迭代文本文件中的键值对列表以加载变量

Arrays bash脚本-如何有效地迭代文本文件中的键值对列表以加载变量,arrays,bash,unix,for-loop,Arrays,Bash,Unix,For Loop,迭代此列表的最佳方式是什么?(键以“:”分隔,值以新行分隔) 我有一个在文本文件中包含以下值的文件: cl1:AbC!123 cl2:EfF{3201p cl3:Zrq12@1q5t 基本上是:key:value 我有一个需要执行的函数(一次一个) 对于列表中的每个键:值 其中: key=clnmbr value=pw 功能: myfunction() { mycount=$(PGPASSWORD=${pw} psql -h myhost-1-${clnmbr}.com -U ma

迭代此列表的最佳方式是什么?(键以“:”分隔,值以新行分隔)

我有一个在文本文件中包含以下值的文件:

cl1:AbC!123
cl2:EfF{3201p
cl3:Zrq12@1q5t
基本上是:
key:value

我有一个需要执行的函数(一次一个) 对于列表中的每个
键:值

其中:

key=clnmbr
value=pw
功能:

myfunction()
  {
   mycount=$(PGPASSWORD=${pw} psql -h myhost-1-${clnmbr}.com -U masteruser -d dev -p 5439 -t -c "select count(datname) from pg_database;")
}
所以基本上我想循环列表中的每一行并执行我的函数。最好的方法是什么


谢谢。

顺便说一句,我几乎可以肯定你在描述什么是什么。你说它是
key:value
key=pw
,但是这个键有点像
cl1
cl2
——不是一个好密码——而且这个值看起来更像是password-y。你说它是
key:value
key=pw
,但是这个键有点像
cl1
cl2
——不是一个好密码——而且这个值看起来更像是password-y。好吧,我明白了,但是我怎么把它作为一个文件读入呢?你喜欢这个工作吗
而IFS=:read-r
?你想把
放在
完成后的
“myfile.lst”
,以重定向整个列表——如果你把它放在
read
之后,它只会一遍又一遍地重读第一行。明白了吗。它起作用了。谢谢好的,有点理解,但我如何把它作为一个文件读入呢?你喜欢这个工作吗
而IFS=:read-r
?你想把
放在
完成后的
“myfile.lst”
,以重定向整个列表——如果你把它放在
read
之后,它只会一遍又一遍地重读第一行。明白了吗。它起作用了。谢谢
while IFS=: read -r clnmbr pw; do
  myfunction
done