csh簡單語法
csh一、變數
1. 字串變數
這個部分和bourne shell的變數一樣,只不過在設定變數值時不能使用bourne
shell的方式,而必須打:
set var=value
2. 數字運算
基本上c shell 沒有數字變數,但c shell 卻有簡單的方法處理數字運算:
@ var operator expression
operator可以是c 語言中的=, +=, -=,……,而expression則是表示式。運
算式的運運算元如下:
a. () 改變計算的順序
~@b. ~ 位元not運算
@~~! 邏輯否定
c.% 取餘數
/ 除* 乘
- 減+ 加
d.>> 右移
<< 左移
e.> 大於
< 小於
>= 大於等於
<= 小於等於
!= 不等於
== 等於
f.& 位元and運算
^ 位元xor運算
| 位元or 運算
g.&& 邏輯and
|| 邏輯or
除此之外,我們也可以檢驗乙個檔案的狀態,如下
-n filename
而-n可為下列之一
-d 檔案是乙個目錄檔案
-e 檔案存在
-f 檔案為一般的檔案
-o 使用者擁有這個檔案
-r 使用者可以讀取這個檔案
-w 使用者可以寫入這個檔案
-x 使用者可以執行這個檔案
-z 檔案長度為0
@ count = count + 1
@ flag = -e /users/cc/mgtsai/mail && -e /usr/spool/mail
3. 陣列
在c shell 中,我們可以宣告陣列變數,方式如下
set var=(val1 val2 ……)
而var[1]之值為val1,var[2]之值為val2……。而$var代表整個陣列。我們
可以用$#var 來計算陣列個數,也可以用$?var 來檢查某個變數是否已宣告。
4. 特殊變數
$argv 和bourne shell的$*相似,只不過這是乙個陣列。
$argv[n] 和bourne shell的$n相同,但不受個數限制。
$#argv 和bourne shell的$#相同
$home 和bourne shell的$home相同
$path 和bourne shell的$path相似,只不過這是乙個陣列
$prompt 和bourne shell的$ps1相同
$shell shell的路徑名稱
$status 和bourne shell的$?相同
$$ 和bourne shell的$$相同
$< 鍵盤輸入
二、執行命令
基本上和bourne shell相同,只有一點在bourne shell中的」.」 命令在c shell 中
則為」source」命令。
三、流程控制
在c shell 中流程控制不像bourne shell中一般需要使用test命令。相反地,它和
c 語言類似只要在條件中寫出運□式即可。當運算結果不為零時,其值為真,為零
時其值為偽。以下是c shell的流程控制
1. if
語法如下
if (expression) ******-command
2. goto
語法如下
goto label
這時程式會跳至以l」label:」開頭的那一行執行
if ($#argv == 2) goto goodargs
echo 『please use two arguments.』
exit
goodrags:
…3. if then else
這和bourne shell的if then, if then else, if then elif 相似。語法如下
a. if (expression) then
commands
endif
b. if (expression) then
commands
else
commands
endif
c. if (expression) then
commands
else if (expression) then
commands
else
commands
endif
4. foreach
這和bourne shell的for in相似。語法如下
foreach var (arg-list)
commands
end5. while
這和bourne shell的while相似。語法如下
while (expression)
commands
end6. break及continue
這和bourne shell的break 及continue相似,是用來中斷foreach 及while 回
圈。7. switch
這和bourne shell的case相似。語法如下
switch (string)
case pat1:
commands1
breaksw
case pat2:
commands2
breaksw
case pat3:
commands3
breaksw
endsw
□附錄a expr命令
命令格式
expr expression
敘述expression是由字串以及運運算元所組成,每個字串或是運運算元之間必須用空白隔開
。下表是運運算元的種類及功能,而優先順序則以先後次序排列,我們可以利用小括
號來改變運算的優先次序。其運算結果則輸出至標準輸出上。
: 字串比較。比較的方式是以兩字串的第乙個字母開始,而以第二個字串的
字母結束。如果相同時,則輸出第二個字串的字母個數,如果不同時則傳
回0 。
* 乘法
/ 除法
% 取餘數
+ 加法
- 減法
< 小於
<= 小於等於
= 等於
!= 不等於
>= 大於等於
> 大於
& and運算
| or運算
當expression中含有」*」, 「(」, 「)」 等符號時,必須在其前面加上」」 ,以免被
shell 解釋成其它意義。
expr 2 * ( 3 + 4 ) 其輸出為14
□附錄b test命令
命令格式
test expression
敘述expression中包含乙個以上的判斷準則以作為test評詁的標準。兩準則間用」-a」代
表邏輯and 運算,」-o」代表邏輯or運算,而在準則前放置一」!」 代表not 運算。如
果沒有括號,則優先權則為」!」 > 「-a」 > 「-o」 。和expr命令相同,相使用左右括
號時,必須在其前面加上」」 。以下是有關準則的敘述(合敘述時傳回真,否則傳
回偽):
string string不為空白字串
-n string string的長度大於0
-z string string的長度等於0
string1=string2 string1等於string2
string1!=string2 string1不等於string2
int1 -gt int2 int1大於int2
int1 -ge int2 int1大於等於int2
int1 -eq int2 int1等於int2
int1 -ne int2 int1不等於int2
int1 -le int2 int1小於等於int2
int1 -lt int2 int1小於int2
-r filename 檔案可讀取
-w filename 檔案可寫入
-x filename 檔案可執行
-f filename 檔案為一般檔
-d filename 檔案為目錄
-s filename 檔案為非空的一般檔
test -r 「$filename」 -a -s 「$filename」
csh簡單語法
csh簡單語法 csh一 變數 1.字串變數 這個部分和bourne shell的變數一樣,只不過在設定變數值時不能使用bourne shell的方式,而必須打 set var value 2.數字運算 基本上c shell 沒有數字變數,但c shell 卻有簡單的方法處理數字運算 var ope...
Bash與Csh中的變數
zz bash中的變數 1 定義 直接使用 變數名 值 的格式來定義,不區分字串與數字值,統統認為是乙個串.如 username bdxnote 2 引用 在變數名前加上美元符號 即可引用該變數的值.如 echo my name is username 3 命令列引數 n,n的取值範圍為0 9 n ...
XPath 簡單語法
xpath 是xml的查詢語言,和sql的角色很類似。以下面xml為例,介紹xpath 的語法。empire burlesque bob dylan 10.90 hide your heart bonnie tyler 9.90 greatest hits dolly parton 9.90 定位節...