| 24小時(shí)熱門(mén)版塊排行榜 |
| 6 | 1/1 | 返回列表 |
| 查看: 1299 | 回復(fù): 5 | ||||
Gina88木蟲(chóng) (正式寫(xiě)手)
|
[交流]
【求助完畢】程序表示什么意思?
|
|
以下的程序有些細(xì)節(jié)還是不知道什么意思。 #!bin/sh #!什么意思啊? rm WAVECAR 為什么要?jiǎng)h除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的數(shù)值輸入到comment文件中嗎? done [ Last edited by cenwanglai on 2011-3-27 at 21:57 ] |
分子動(dòng)力學(xué) |
» 搶金幣啦!回帖就可以得到:
+5/890
+1/167
+2/132
+1/81
+1/71
+2/38
+1/36
+1/35
+1/32
+1/25
+1/13
+1/12
+1/11
+1/8
+1/6
+1/2
+1/2
+1/2
+1/1
+1/1
至尊木蟲(chóng) (著名寫(xiě)手)
|
建議樓主了解一些linux腳本的基本知識(shí) #!bin/sh #!shell類(lèi)型說(shuō)明,使用的shell是bash rm WAVECAR 刪掉波函數(shù),是為了從新開(kāi)始弛豫(使用隨機(jī)波函數(shù))。如果INCAR中設(shè)置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 ! 前面已經(jīng)解釋過(guò) echo "ENCUT=$i eV" 屏幕上打印引號(hào)內(nèi)的內(nèi)容,同上,$i用i的值取代 time vasp 運(yùn)行vasp,并且在程序跑完之后打印消耗的時(shí)間 E='grep "TOTEN" OUTCAR |tail -1 | awk' {printf "%12.6f \n",$5} 這一行你要學(xué)習(xí)grep,tail,awk和管道符號(hào) grep是從文件中提取含有特殊字符的行,在這里是提取OUTCAR中含有TOTEN的行,通過(guò)管道符號(hào),將提取出來(lái)的這些行交給下一個(gè)命令tail -1處理。 tail加一個(gè)負(fù)數(shù)表示顯示最后幾行,這里-1就是顯示最后第一行,同樣經(jīng)過(guò)管道符號(hào)交給下一個(gè)命令處理。 awk是一個(gè)文件處理函數(shù),自己學(xué)習(xí)下吧不是一句兩句能說(shuō)的清楚。這里的意思是將這一行的第五個(gè)字符塊按照"%12.6f \n"這樣的格式輸出。這是printf指定的輸出格式,google一下你就明白了 echo $i $E >>comment 這里你的理解沒(méi)錯(cuò) done |
木蟲(chóng) (正式寫(xiě)手)
|
1. echo函數(shù): 輸出函數(shù),是下令,不能返回值。echo后頭可以跟很多 個(gè)參數(shù),之間用分號(hào)離隔,如: echo $myvar1; echo 1,2,$myvar,"bold"; 2. print函數(shù): 是函數(shù),可以返回一個(gè)值,只能有一個(gè)參數(shù)。 int print ( string arg ) Outputs arg . Returns 1 , always. 3. printf函數(shù): int printf ( string format [, mixed args [, mixed ...]] ) Produces output according to format , which is described in the documentation for . Returns the length of the outputted string. 把筆墨技倆化以后輸出,如: $name="hunte"; $age=25; printf("my name is %s, age %d", $name, $age); 4. sprintf函數(shù): string sprintf ( string format [, mixed args [, mixed ...]] ) Returns a string produced according to the formatting string format . 跟printf雷同,但不打印,而是返回技倆化后的筆墨,其他的與printf一樣。 5. 具體講解printf()函數(shù): printf()函數(shù)的調(diào)用技倆為: printf("<技倆化字符串>", <參量表> ; %d 十進(jìn)制有標(biāo)記整數(shù) %u 十進(jìn)制無(wú)標(biāo)記整數(shù) %f 浮點(diǎn)數(shù) %s 字符串 %c 單個(gè)字符 %p 指針的值 %e 指數(shù)形式的浮點(diǎn)數(shù) %x, %X 無(wú)標(biāo)記以十六進(jìn)制表示的整數(shù) %o 無(wú)標(biāo)記以八進(jìn)制表示的整數(shù) %g 主動(dòng) 選擇適宜 的表示法 闡發(fā) : (1). 可以在"%"和字母之間插進(jìn)數(shù)字表示最大場(chǎng)寬。 ①譬喻: %3d 表示輸出3位整型數(shù), 不足3位右對(duì)齊。 ②%9.2f 表示輸出場(chǎng) 寬為9的浮點(diǎn)數(shù), 此中小數(shù)位為2, 整數(shù)位為6, 小數(shù)點(diǎn)占一位, 不足9位右對(duì)齊。 、%8s 表示輸出8個(gè)字符的字符串, 不足8個(gè)字符右對(duì)齊。 、芗偃缱址拈L(zhǎng)度、或整型數(shù)位數(shù)高出 闡發(fā) 的場(chǎng)寬, 將按著實(shí) 際長(zhǎng)度輸出。 ⑤浮點(diǎn)數(shù), 若整數(shù)部分 位數(shù)高出 了闡發(fā) 的整數(shù)位寬度, 將按實(shí)際 整數(shù)位輸出; 、扌(shù)部分 位數(shù)高出 了闡發(fā) 的小數(shù)位寬度, 則按闡發(fā) 的寬度以四舍五入輸出。 、呷粝朐谳敵鲋登凹右恍0, 就應(yīng)在場(chǎng)寬項(xiàng)前加個(gè)0。 譬喻: %04d 表示在輸出一個(gè)小于4位的數(shù)值時(shí), 將在前面補(bǔ)0使其總寬度為4位。 ⑧假如用浮點(diǎn)數(shù)表示字符或整型量的輸出技倆, 小數(shù)點(diǎn)后的數(shù)字代表最大寬度, 小數(shù)點(diǎn)前的數(shù)字代表最小寬度。 譬喻: %6.9s 表示表現(xiàn)一個(gè)長(zhǎng)度不小于6且不大于9的字符串。若大于9, 則第9個(gè)字符以后的內(nèi)容將被刪除。 (2). 可以在"%"和字母之間加小寫(xiě)字母l, 表示輸出的是長(zhǎng)型數(shù)。 ①譬喻: %ld 表示輸出long整數(shù) ②%lf 表示輸出double浮點(diǎn)數(shù) (3). 可以獨(dú)霸輸出左對(duì)齊或右對(duì)齊, 即在"%"和字母之間介入一個(gè)"-" 號(hào)可闡發(fā) 輸出為左對(duì)齊, 不然為右對(duì)齊。 、倨┯: %-7d 表示輸出7位整數(shù)左對(duì)齊 ②%-10s 表示輸出10個(gè)字符左對(duì)齊 (4). 一些出格規(guī)定 字符 ①\n 換行 ②\f 清屏并換頁(yè) ③\r 回車(chē) ④\t Tab符 ⑤\xhh 表示一個(gè)ASCII碼用16進(jìn)表示, ⑥此中 hh是1到2個(gè)16進(jìn)制數(shù) [ Last edited by Gina88 on 2011-1-25 at 21:55 ] |
木蟲(chóng) (正式寫(xiě)手)
|
shell的種類(lèi) Linux中的shell有多種類(lèi)型,其中最常用的幾種是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。三種shell各有優(yōu)缺點(diǎn)。Bourne shell是UNIX最初使用的shell,并且在每種UNIX上都可以使用。Bourne shell在shell編程方面相當(dāng)優(yōu)秀,但在處理與用戶(hù)的交互方面做得不如其他幾種shell。Linux操作系統(tǒng)缺省的shell是Bourne Again shell,它是Bourne shell的擴(kuò)展,簡(jiǎn)稱(chēng)Bash,與Bourne shell完全向后兼容,并且在Bourne shell的基礎(chǔ)上增加、增強(qiáng)了很多特性。Bash放在/bin/bash中,它有許多特色,可以提供如命令補(bǔ)全、命令編輯和命令歷史表等功能,它還包含了很多C shell和Korn shell中的優(yōu)點(diǎn),有靈活和強(qiáng)大的編程接口,同時(shí)又有很友好的用戶(hù)界面。 C shell是一種比Bourne shell更適于編程的shell,它的語(yǔ)法與C語(yǔ)言很相似。 Linux為喜歡使用C shell的人提供了Tcsh。Tcsh是C shell的一個(gè)擴(kuò)展版本。Tcsh包括命令行編輯、可編程單詞補(bǔ)全、拼寫(xiě)校正、歷史命令替換、作業(yè)控制和類(lèi)似C語(yǔ)言的語(yǔ)法,它不僅和Bash shell是提示符兼容,而且還提供比Bash shell更多的提示符參數(shù)。 Korn shell集合了C shell和Bourne shell的優(yōu)點(diǎn)并且和Bourne shell完全兼容。Linux系統(tǒng)提供了pdksh(ksh的擴(kuò)展),它支持任務(wù)控制,可以在命令行上掛起、后臺(tái)執(zhí)行、喚醒或終止程序。 Linux并沒(méi)有冷落其他shell用戶(hù),還包括了一些流行的shell如ash、zsh等。每個(gè)shell都有它的用途,有些shell是有專(zhuān)利的,有些能從Internet網(wǎng)上或其他來(lái)源獲得。要決定使用哪個(gè)shell,只需讀一下各種shell的聯(lián)機(jī)幫助,并試用一下。 用戶(hù)在登錄到Linux時(shí)由/etc/passwd文件來(lái)決定要使用哪個(gè)shell。例如: # fgrep lisa /etc/passwd lisa:x:500:500:TurboLinux User:/home/lisa:/bin/bash shell被列每行的末尾(/bin/bash)。 [ Last edited by Gina88 on 2011-1-25 at 22:15 ] |
木蟲(chóng) (正式寫(xiě)手)
|
首先非常感謝版主的回答,非常詳細(xì)。我也上網(wǎng)查了查這些東西,還是有些東西不能明白。 我的計(jì)算是在集群計(jì)算機(jī)上的。 我用telnet或者SSH連接集群計(jì)算機(jī)的。 上面的程序是在telnet或者SSH連接時(shí)的命令模式下。 直接用vi進(jìn)行編輯的嗎?編輯后要不要保存退出來(lái)啊?退出來(lái)后它就直接運(yùn)行了嗎? 還是事先建一個(gè)文件,再將上面的程序?qū)戇M(jìn)去的?如果是,建的文件名字是什么呢? 然后就和以前的一樣用vasp.lsf運(yùn)行嗎? 還有:cat >INCAR<可不可以省略啊,不是已經(jīng)有<<表示輸入了嗎? #是不是注釋行啊,這樣!也可以省略了。 grep那一行,既然grep提取的是一行,管道符又是將前面的結(jié)果交給下一個(gè)命令,而tail -1又表示顯示最后一行。那是不是tail -1可以省略了呢,因?yàn)間rep提取的只有一行啊;蛘遲ail 可以被more less head等代替? [ Last edited by Gina88 on 2011-1-25 at 22:45 ] |
至尊木蟲(chóng) (著名寫(xiě)手)
|
可以用vi編輯器,編輯完當(dāng)然要保存退出 保存退出后看下它的權(quán)限,如果不是可執(zhí)行文件就“chmod +x 文件名” 文件名自己取,比如xxx.sh 運(yùn)行時(shí)./xxx.sh就可以 cat >INCAR<不可以省略,如果沒(méi)有這一符號(hào)相當(dāng)于cat INCAR就是打印INCAR的內(nèi)容 前面加#是注釋?zhuān)梢允÷浴5谝恍?!不一樣,是指定shell類(lèi)型,不是注釋 不可以省略tail -1靜態(tài)計(jì)算只有一行,馳豫會(huì)有N多行,最后一行是馳豫結(jié)束的結(jié)果 tail ,head 與more, less是不一樣的,具體你可以百度一下這里用tail最合適 |
| 6 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 085601材料工程專(zhuān)碩求調(diào)劑 +5 | 慕寒mio 2026-03-16 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 301求調(diào)劑 +5 | yy要上岸呀 2026-03-17 | 5/250 |
|
|
[考研] 293求調(diào)劑 +7 | zjl的號(hào) 2026-03-16 | 12/600 |
|
|
[考研] 344求調(diào)劑 +4 | knight344 2026-03-16 | 4/200 |
|
|
[考研] 312求調(diào)劑 +4 | 陌宸希 2026-03-16 | 5/250 |
|
|
[考研] 【0856】化學(xué)工程(085602)313 分,本科學(xué)科評(píng)估A類(lèi)院校化學(xué)工程與工藝,誠(chéng)求調(diào)劑 +7 | 小劉快快上岸 2026-03-11 | 8/400 |
|
|
[考研] 274求調(diào)劑0856材料化工 +13 | z2839474511 2026-03-11 | 14/700 |
|
|
[考研] 211本,11408一志愿中科院277分,曾在中科院自動(dòng)化所實(shí)習(xí) +6 | Losir 2026-03-12 | 7/350 |
|
|
[考研] 278求調(diào)劑 +3 | Yy7400 2026-03-13 | 3/150 |
|
|
[基金申請(qǐng)] 國(guó)自科面上基金字體 +6 | iwuli 2026-03-12 | 7/350 |
|
|
[考研] 0854控制工程 359求調(diào)劑 可跨專(zhuān)業(yè) +3 | 626776879 2026-03-14 | 9/450 |
|
|
[考研] 283求調(diào)劑 +10 | 小樓。 2026-03-12 | 14/700 |
|
|
[考研] 0703化學(xué)調(diào)劑,求各位老師收留 +8 | 秋有木北 2026-03-14 | 8/400 |
|
|
[考研] 一志愿華中師范071000,325求調(diào)劑 +6 | RuitingC 2026-03-12 | 6/300 |
|
|
[考研] 265求調(diào)劑 +4 | 威化餅07 2026-03-12 | 4/200 |
|
|
[考研] 281求調(diào)劑 +9 | Koxui 2026-03-12 | 11/550 |
|
|
[考研] 材料與化工085600調(diào)劑求老師收留 +9 | jiaanl 2026-03-11 | 9/450 |
|
|
[考研] 314求調(diào)劑 +7 | 無(wú)懈可擊的巨人 2026-03-12 | 7/350 |
|
|
[考研] 290求調(diào)劑 +7 | ADT 2026-03-12 | 7/350 |
|
|
[考研] 070303一志愿西北大學(xué)學(xué)碩310找調(diào)劑 +3 | d如愿上岸 2026-03-13 | 3/150 |
|