1、C Shell Programming,特殊字元,$ : 代表shell變數名稱的開頭.# : 註解的開始.& : 在背景執行行程.? : 對應1個字元.* : 對應1個或多個字元. :對應一個限定範為的字元. :對應列舉的字串.,特殊字元(續),輸入與輸出字元:command file :表示command的結果輸出到file中.command1 | command2 : command1的輸出會成為command2的輸入.,設定變數,利用 set 來取得變數: set ABC = I am ABC 也可以利用 command 來取得命令:set dv=date/將變數dv的值設為date命
2、令所取得之值.set name= “john”set info = who | grep $name /從who所輸出的上線訊息去找是否有”john”這個字串,若有就將此訊息設定給變數info.,如何執行script,第一行的第一個字必須是#,它代表此檔案是一個C shell script。同時#在script中也是註解符號,在#後面的同一行內容均不會執行。當編輯完script之後還要去更改它的權限,讓它可以被執行.% chmod u+x script(檔名)直接鍵入script(檔名)即可執行,If 條件,語法:if (expression) command /若expression的結果為
3、真,將執行commandIf (expression) then / if 與then必須在同一行commands endif /endif必須單獨在一行If (expression) then commands else commands endif,If範例,#!/usr/bin/csh /kitty的設定環境,使用pico或vi編輯#show the relation between n1 and n2set n1 = 1set n2 = 2if ($n1 $n2) then echo $n1 is bigger than $n2 else echo $n1 is not bigger
4、than $n2 endif,簡易重複執行的指令,repeat n 指令 /重複執行指令n次,且指令只能有一行。repeat 3 echo hello;echo yoyo執行結果:,上面的那行其實就等於repeat 3 echo helloecho yoyo,foreach迴圈,foreach variable (wordlist) commands end/從wordlist的第一個字開始,每次會指定wordlist的下一個字給variable,一直到最後一個字被指定至variable且commands執行為止, wordlist 之間要以空白隔開。,foreach迴圈範例,EX. #!/u
5、sr/bin/csh /kitty的設定環境 #show “Test foreach construct” in 3 times foreach var(1 2 3) echo “Test foreach construct” end,Foreach迴圈(續),Result:Test foreach constructTest foreach constructTest foreach construct,While迴圈,while (expression)commandsendEX: #!/usr/bin/csh #test while set counter = 0 while ($cou
6、nter = 5) echo sleeping for 2 seconds sleep 2 set counter = expr $counter + 1 end,在shell必須使用expr指令來輔助做四則運算,如果要將結果指定給變數,必須使用包起來,且在+ - * /兩邊都要有空白,否則將會產生ERROR。,此符號為與同一鍵盤的,While迴圈結果,sleeping for 2 secondssleeping for 2 secondssleeping for 2 secondssleeping for 2 secondssleeping for 2 seconds,switch,switch (string) case pattern1 commands breaksw; case pattern2 commands breaksw;default: commands breaksw; endsw,