| 查看: 567 | 回复: 1 | ||
[求助]
Linux shell循环执行一个程序 已有1人参与
|
|
大家好 是这样的: 系统是centos, 命令行下执行一个计算程序,程序一开始会读一个输入文件infile。 想实现的功能: for i=0:1:50 修改输入文件infile中的的输出文件名,比如 "output_i.txt" 修改输入文件infile中的扫描参数,“angle = i” 执行一个文件名为calc的计算程序, "./calc" 等待执行完毕 end 恳请高手给我写一个shell文件,谢谢! |
» 猜你喜欢
微信指数没变化,科研之友没阅读
已经有17人回复
申请2027年材料/化学类博士
已经有5人回复
系统今天又提示维护了,估计离放榜不远了
已经有14人回复
2026年国自然面上资助率
已经有6人回复
你们的时间戳变了吗
已经有4人回复
小木虫看见有人已经知道结果了
已经有17人回复
今年的WR进展到哪一步了?
已经有9人回复
产物和副产物价值比较
已经有5人回复
时间戳他又来了
已经有17人回复
这个自发加氧反应的机理是什么?
已经有7人回复
zzy滴号
金虫 (小有名气)
- 应助: 18 (小学生)
- 金币: 5449.9
- 散金: 367
- 红花: 1
- 帖子: 282
- 在线: 895.6小时
- 虫号: 1540568
- 注册: 2011-12-17
- 性别: GG
- 专业: 理论和计算化学
【答案】应助回帖
|
因为楼主你没给出数据文件的确切格式,所以我假设文本第一行为"output_i.txt",第二行为“angle = i”。shell如下: #!/bin/sh #常量定义 INPUTFILE="./a.dat" START=0 LAST=10 OUTPUTFILEPRE="output_" OUTPUTFILEEND=".txt" ANGLE="angle=" OUTERPROGRAMPATH="./calc.sh" #测试数据文件是否存在且非空时 if [ ! -s $INPUTFILE ]; then echo "The file isn't exist or empty!" exit -1 fi #测试外部运行程序是否存在 if [ ! -x $OUTERPROGRAMPATH ]; then echo "The outer excute file isn't exist or error!" exit -1 fi #测试行数是否符合要求 lineNum=`sed -n '$=' $INPUTFILE` if [ $lineNum -le 2 ]; then echo "The file has too little contens" exit -1 fi for index in $(seq $START $LAST) do #拼出当前的输出文件 curOutFile=$OUTPUTFILEPRE$index$OUTPUTFILEEND #拼出当前的参数 curAngle=$ANGLE$index #将上两个参数进行替换 sed -i 1c\ $curOutFile $INPUTFILE sed -i 2c\ $curAngle $INPUTFILE #执行定义的外部程序 $OUTERPROGRAMPATH done |

2楼2015-09-20 16:51:05











回复此楼