24小时热门版块排行榜    

查看: 1222  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

Gina88

木虫 (正式写手)


[交流] 【求助完毕】程序表示什么意思?

以下的程序有些细节还是不知道什么意思。

#!bin/sh                #!什么意思啊?
rm WAVECAR          为什么要删除WAVECAR啊?
for i in 150 200 250 300 350 400
do                             
cat >INCAR< < SYSTEM=Si
ENCUT=$i               $什么意思啊?
ISTART=0
ICHARG=2
ISMEAR=-5
PREC=Accurate
!                                 !什么意思啊 ?               
echo "ENCUT=$i eV"      什么意思啊
time vasp                    是让跑vasp的意思吗?
E='grep "TOTEN" OUTCAR |tail -1 | awk' {printf "%12.6f \n",$5}           什么意思啊
echo $i  $E >>comment            是将i  E的数值输入到comment文件中吗?
done

[ Last edited by cenwanglai on 2011-3-27 at 21:57 ]
回复此楼

» 收录本帖的淘帖专辑推荐

分子动力学

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★
Gina88(金币+10): 2011-01-25 21:05:21
ellsaking(金币+3): 感谢详细说明 2011-01-26 10:52:02
建议楼主了解一些linux脚本的基本知识

#!bin/sh                #!shell类型说明,使用的shell是bash
rm WAVECAR         删掉波函数,是为了从新开始弛豫(使用随机波函数)。如果INCAR中设置ISTART=0可以不用删除WAVECAR
for i in 150 200 250 300 350 400
do                             
cat >INCAR< SYSTEM=Si
ENCUT=$i               $i表示该处的值用i的值取代,即150,200,250.....
ISTART=0
ICHARG=2
ISMEAR=-5
PREC=Accurate
!                                前面已经解释过               
echo "ENCUT=$i eV"      屏幕上打印引号内的内容,同上,$i用i的值取代
time vasp                    运行vasp,并且在程序跑完之后打印消耗的时间
E='grep "TOTEN" OUTCAR |tail -1 | awk' {printf "%12.6f \n",$5}        
这一行你要学习grep,tail,awk和管道符号
grep是从文件中提取含有特殊字符的行,在这里是提取OUTCAR中含有TOTEN的行,通过管道符号,将提取出来的这些行交给下一个命令tail -1处理。
tail加一个负数表示显示最后几行,这里-1就是显示最后第一行,同样经过管道符号交给下一个命令处理。
awk是一个文件处理函数,自己学习下吧不是一句两句能说的清楚。这里的意思是将这一行的第五个字符块按照"%12.6f \n"这样的格式输出。这是printf指定的输出格式,google一下你就明白了
echo $i  $E >>comment            这里你的理解没错
done
2楼2011-01-25 18:44:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★
Gina88(金币+10): 2011-01-26 19:56:58
gzqdyouxia(金币+2): 谢谢详细指导 2011-01-27 10:00:12
可以用vi编辑器,编辑完当然要保存退出
保存退出后看下它的权限,如果不是可执行文件就“chmod +x 文件名”
文件名自己取,比如xxx.sh
运行时./xxx.sh就可以
cat >INCAR<不可以省略,如果没有这一符号相当于cat INCAR就是打印INCAR的内容
前面加#是注释,可以省略。第一行#!不一样,是指定shell类型,不是注释
不可以省略tail -1静态计算只有一行,驰豫会有N多行,最后一行是驰豫结束的结果
tail ,head 与more, less是不一样的,具体你可以百度一下这里用tail最合适
6楼2011-01-26 11:49:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Gina88 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见