| 查看: 517 | 回复: 1 | |||
[求助]
Linux shell循环执行一个程序 已有1人参与
|
|
大家好 是这样的: 系统是centos, 命令行下执行一个计算程序,程序一开始会读一个输入文件infile。 想实现的功能: for i=0:1:50 修改输入文件infile中的的输出文件名,比如 "output_i.txt" 修改输入文件infile中的扫描参数,“angle = i” 执行一个文件名为calc的计算程序, "./calc" 等待执行完毕 end 恳请高手给我写一个shell文件,谢谢! |
» 猜你喜欢
退学或坚持读
已经有6人回复
多组分精馏求助
已经有6人回复
免疫学博士有名额,速联系
已经有8人回复
26申博求博导推荐-遥感图像处理方向
已经有5人回复
国家级人才课题组招收2026年入学博士
已经有6人回复
交叉科学部支持青年基金,对三无青椒是个机会吗?
已经有7人回复
青椒八年已不青,大家都被折磨成啥样了?
已经有15人回复
国家基金申请书模板内插入图片不可调整大小?
已经有6人回复
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













回复此楼