加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在bash脚本中迭代变量名

发布时间:2020-12-15 22:01:34 所属栏目:安全 来源:网络整理
导读:我需要在一堆文件上运行一个脚本,这些路径分配给train1,train2,…,train20,我想’为什么不用bash脚本自动生成?’. 所以我做了类似的事情: train1=path/to/first/filetrain2=path/to/second/file...train20=path/to/third/filefor i in {1..20}do python so
我需要在一堆文件上运行一个脚本,这些路径分配给train1,train2,…,train20,我想’为什么不用bash脚本自动生成?’.

所以我做了类似的事情:

train1=path/to/first/file
train2=path/to/second/file
...
train20=path/to/third/file

for i in {1..20}
do
    python something.py train$i
done

这不起作用,因为火车$i回应了train1的名字,但不是它的价值.

所以我尝试了一些不成功的事情,比如$(train $i)或${train $i}或${!train $i}.
有谁知道如何捕获这些变量的正确值?

解决方法

你可以使用数组:

train[1]=path/to/first/file
train[2]=path/to/second/file
...
train[20]=path/to/third/file

for i in {1..20}
do
    python something.py ${train[$i]}
done

或eval,但它的方式很糟糕:

train1=path/to/first/file
train2=path/to/second/file
...
train20=path/to/third/file

for i in {1..20}
do
    eval "python something.py $train$i"
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读