开发者社区> 问答> 正文

求助各位~一个有关linux中.sh脚本里写循环的问题,谢谢O(∩_∩)O~

a = ["name1", "name2", "name3"......"name100"]
for i in 路径/*.py #这个路径底下有100个python脚本,名字不同,代码一样
do
我需要把每个python文件打开,改动一行if name = "":把a中名字对应进去,保存,运行下边这条

python $i > $i.txt   #各自结果存到相应的txt($i.txt 这句不确定写对了没。。。)

done
do里面有两个任务,一是把python脚本改下,就是粘进去相应名字(100个名字,100个python脚本,100个结果txt)。
二是运行这个脚本
其实开始我都是对着a列表,打开python自己粘进去的,再运行,但现在时间紧迫,不知谁能帮忙想想怎么写呢?

展开
收起
杨冬芳 2016-07-18 13:19:30 2444 0
2 条回答
写回答
取消 提交回答
  • a="name1:name2:...:name100"
    n=1

    for i in $(ls) ;
    do
    e="echo $a | cut -d : -f $n"
    name=$(eval $e)

    sed -i s/if name = \"\"/if name=\"$name\"/g $i
    
    python $i > ${i}.txt

    done

    2019-07-17 19:57:43
    赞同 展开评论 打赏
  • IT从业

    看如下脚本可以不:

    a="name1:name2:...:name100"
    n=1
    
    for i in $(ls) ; 
    do
    e="echo $a | cut -d : -f $n"
    name=$(eval $e)
    
        sed -i s/if name = \"\"/if name=\"$name\"/g $i
    
        python $i > ${i}.txt
    done
    2019-07-17 19:57:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载