linux - 创建等于文件中行的变量,并按顺序为变量分配文件中的值

标签 linux bash shell

我想创建一些与文件中的行数相等的变量,并按顺序从文件中为每个变量分配一个值。

说,
file1 包含 device1 device2 device3 .....
file2 包含 olddevice1 olddevice2 olddevice3 .....

当我执行 echo $A = device1 时,我想要值 同样 echo $B = device2echo $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_nA.SetAt(n, value_n) , ..., 取决于您使用的集合类型。

关于linux - 创建等于文件中行的变量,并按顺序为变量分配文件中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455071/

相关文章:

linux - 编写 bash 脚本来更改文本并写入日志

linux - 抑制期望输出

bash - 从Dockerfile和脚本调用时ROS命令不起作用

python - 使用shell脚本调用多个ROS启动文件

c++ - 使用 MSG_DONTWAIT 的 C UDP 接收套接字总是失败

xml - Unix - 取消注释 xml 注释

linux - PAX 出于某种原因终止了我的进程。 (PAX 用 SIGKILL 终止我的进程)

linux - Bash 脚本 - 迭代查找的输出

c - Unix 环境中的敏感退出状态; SIG_* 范围

c++ - 'gcc -g'和'gcc -g3'有什么区别?