我有一个 varsValues.txt 文件
cat varsValues.txt
aa=13.7
something=20.6
countries=205
world=1
languages=2014
people=7.2
oceans=3.4
我想创建 2 个数组、变量和值。它应该包含
echo ${vars[@]}
aa something countries world languages people oceans
echo ${values[@]}
13.7 20.6 205 1 2014 7.2 3.4
我用
Npars=7
readarray -t vars < <(cut -d '=' -f1 varsValues.txt)
readarray -t values < <(cut -d '=' -f2 varsValues.txt)
for (( yy=0; yy<$Npars; yy++ )); do
eval ${vars[$yy]}=${values[$yy]}
done
echo $people
7.2
但我希望它没有 readarray,它在 Mac (os x) 和 IFS(场间分隔符)上不起作用。
还有其他解决方案吗?哇?珀尔?我可以在我的 bash 脚本中使用它。
谢谢。
最佳答案
您可以使用读取循环。
while IFS=\= read var value; do
vars+=($var)
values+=($value)
done < VarsValues.txt
关于macos - readarray 的替代方法,因为它在 mac os x 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23842261/