免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 常思OL
打印 上一主题 下一主题

[文本处理] (求教)linux下批处理小程序的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-03-26 16:28 |只看该作者
回复 6# seesea2517


    非常感谢你,发现了这些问题:)

  现在我没有用小数,R设置是从1到20
然后我将R递增的语句改成R=((R+1))这样对吗?

论坛徽章:
0
12 [报告]
发表于 2014-03-26 16:32 |只看该作者
本帖最后由 常思OL 于 2014-03-26 16:33 编辑

谢谢,但是这个数字在化学里是有意义的...就是说要在这个数值下画出我想要的东西,现在为了熟悉shell我改成从1到20了
然后又出现这个错误:
*.gjf: syntax error: operand expected (error token is "*.gjf")

BTW:gjf是我要调用的输入文件

回复 10# runintostar


   

论坛徽章:
0
13 [报告]
发表于 2014-03-26 16:37 |只看该作者
回复 12# 常思OL

你可以判断前先用bc乘以100
判断后真得要用之前再用bc做除以100不就好了

你得这里

for a in `*.gif`
不行的一对左单引号里面是命令替换,但你得*.gif不是命令是个wildcard
改成这样
for a in "*.gif"
就行了

   

论坛徽章:
0
14 [报告]
发表于 2014-03-26 16:39 |只看该作者
回复 13# runintostar


    谢谢。
我已经改成""了
还是报这个错误....
error token is "*.gjf"

论坛徽章:
0
15 [报告]
发表于 2014-03-26 16:52 |只看该作者
回复 14# 常思OL

for R in "*.gjf"
R=0.3

这样子还是有问题的

其实我有点看晕了,能把你现在完整的code发出来么
另外请告知

for R in *.gjf
时你得目的是让R代表什么

论坛徽章:
0
16 [报告]
发表于 2014-03-26 17:04 |只看该作者
回复 15# runintostar


    更新之后的sh程序为

#!/bin/bash
for R in "./*.gjf"         (R是输入文件里的原子间距,目的就是让R递增)
do
R=1
while (( R<=20 ))
do
g09 < ${R} > ${R}.out&   (g09就是运行软件的命令能得到我要的东西)
R=$(($R+1))                        
done
done


之前的错误全都没了
错误变成了
run.sh: line 7: 1: No such file or directory
run.sh: line 7: 2: No such file or directory
run.sh: line 7: 3: No such file or directory
run.sh: line 7: 4: No such file or directory
run.sh: line 7: 6: No such file or directory
run.sh: line 7: 5: No such file or directory
run.sh: line 7: 7: No such file or directory
run.sh: line 7: 8: No such file or directory
run.sh: line 7: 9: No such file or directory
run.sh: line 7: 10: No such file or directory
run.sh: line 7: 11: No such file or directory
run.sh: line 7: 12: No such file or directory
run.sh: line 7: 13: No such file or directory
run.sh: line 7: 14: No such file or directory
run.sh: line 7: 15: No such file or directory
run.sh: line 7: 16: No such file or directory
run.sh: line 7: 17: No such file or directory
run.sh: line 7: 18: No such file or directory
run.sh: line 7: 19: No such file or directory
run.sh: line 7: 20: No such file or directory
在${R}.out前加上./也不对
不过我感觉离最后成功很近了...

论坛徽章:
0
17 [报告]
发表于 2014-03-26 17:07 |只看该作者
  1. for R in "./*.gjf"         (R是输入文件里的原子间距,目的就是让R递增)
  2. do
  3. R=1
复制代码
你这两个地方太矛盾了
我能理解成你这个目录下面有很多
gjf格式的文件,你的for语句是想取到这个.gjf的文件名然后赋值给变量R么?
但是你下面立刻又主动的给R赋值为1,那上面那个for循环的意义是什么?

论坛徽章:
0
18 [报告]
发表于 2014-03-26 17:11 |只看该作者
回复 17# runintostar


    只有一个gjf后缀的文件,而且在gjf文件里R没有赋值,只是在sh里赋值的

论坛徽章:
0
19 [报告]
发表于 2014-03-26 17:20 |只看该作者
回复 18# 常思OL

..怎么说不明白的
  1. for R in "./*.gjf"
复制代码
这句代码,你写了,但这句代码执行的目的是什么,你知道么

   

论坛徽章:
0
20 [报告]
发表于 2014-03-26 17:27 |只看该作者
本帖最后由 常思OL 于 2014-03-26 17:58 编辑

回复 19# runintostar


    前面的./我去掉了 ,这个大概是指所有目录下的这个文件的意思?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP