我想创建一些与文件中的行数相等的变量,并按顺序从文件中为每个变量分配一个值。
说,
file1 包含 device1 device2 device3 .....
file2 包含 olddevice1 olddevice2 olddevice3 .....
当我执行 echo $A = device1
时,我想要值
同样 echo $B = device2
和 echo $Z = device26
我尝试了一个 for
循环,甚至一个数组,但无法通过它。
我试过如下的方法:
iin=0
var=({A..Z})
for jin in `cat file1`
do
array[$iin]="$var=$jin";
iin=$(($iin+1));
var="$(echo $var | tr '[A-Y]Z' '[B-Z]A')"
printf '%s\n' "${array[@]}"
done`
最佳答案
我相信您没有捕获重点:变量在编程语言中具有固定名称,例如 $A
、$B
、...、$Z
:在编程时,您需要在程序中指定这些变量,您不能指望程序自己发明变量。
您正在寻找的是集合,例如数组、列表...:
您创建一个集合 A
并可以向其中添加值(A[n]=value_n
或 A.SetAt(n, value_n)
, ..., 取决于您使用的集合类型。
关于linux - 创建等于文件中行的变量,并按顺序为变量分配文件中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455071/