G_mumuxi
G木木夕
采纳率75.5%
2016-03-09 06:34 阅读 1.4k

求助各位~一个有关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自己粘进去的,再运行,但现在时间紧迫,不知谁能帮忙想想怎么写呢?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    qwerB qwerB 2016-03-09 08:20

    看如下脚本可以不:
    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

    点赞 1 评论 复制链接分享
  • qwerB qwerB 2016-03-09 08:22

    忘记n+1了,在循环最后一行加上n=$(($n+1))

    点赞 1 评论 复制链接分享

相关推荐