genesis2000脚本简单的csh语法讲解.doc

上传人:b****2 文档编号:1535933 上传时间:2022-10-22 格式:DOC 页数:10 大小:35KB
下载 相关 举报
genesis2000脚本简单的csh语法讲解.doc_第1页
第1页 / 共10页
genesis2000脚本简单的csh语法讲解.doc_第2页
第2页 / 共10页
genesis2000脚本简单的csh语法讲解.doc_第3页
第3页 / 共10页
genesis2000脚本简单的csh语法讲解.doc_第4页
第4页 / 共10页
genesis2000脚本简单的csh语法讲解.doc_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

genesis2000脚本简单的csh语法讲解.doc

《genesis2000脚本简单的csh语法讲解.doc》由会员分享,可在线阅读,更多相关《genesis2000脚本简单的csh语法讲解.doc(10页珍藏版)》请在冰豆网上搜索。

genesis2000脚本简单的csh语法讲解.doc

genesis2000脚本简单的csh语法讲解

一、变数

1. 字串变数

这个部分和BourneShell的变数一样,只不过在设定变数值时不能使用Bourne

Shell的方式,而必须打:

setvar=value

2. 数字运算

基本上CShell 没有数字变数,但CShell 却有简单的方法处理数字运算:

@varoperatorexpression

operator可以是C 语言中的=,+=,-=,……,而expression则是运算式。

算式的运算子如下:

A.() 改变计算的顺序

~@

B.~ 位元NOT运算

@~~

!

 逻辑否定

C.

 % 取馀数

/ 除

* 乘

- 减

+ 加

D.

 >> 右移

<< 左移

E.

 > 大於

< 小於

>= 大於等於

<= 小於等於

!

= 不等於

== 等於

F.

 & 位元AND运算

^ 位元XOR运算

| 位元OR 运算

G.

 && 逻辑AND

|| 逻辑OR

除此之外,我们也可以检验一个档案的状态,如下

-nfilename

而-n可为下列之一

-d 档案是一个目录档案

-e 档案存在

-f 档案为一般的档案

-o 使用者拥有这个档案

-r 使用者可以读取这个档案

-w 使用者可以写入这个档案

-x 使用者可以执行这个档案

-z 档案长度为0

@count=count+1

@flag=-e/users/cc/mgtsai/mail&&-e/usr/spool/mail

3. 阵列

在CShell 中,我们可以宣告阵列变数,方式如下

setvar=(val1val2……)

而var[1]之值为val1,var[2]之值为val2……。

而$var代表整个阵列。

我们

可以用$#var 来计算阵列个数,也可以用$?

var 来检查某个变数是否已宣告。

4. 特殊变数

$argv 和BourneShell的$*相似,只不过这是一个阵列。

$argv[n] 和BourneShell的$n相同,但不受个数限制。

$#argv 和BourneShell的$#相同

$home 和BourneShell的$HOME相同

$path 和BourneShell的$PATH相似,只不过这是一个阵列

$prompt 和BourneShell的$PS1相同

$shellShell的路径名称

$status 和BourneShell的$?

相同

$$ 和BourneShell的$$相同

$< 键盘输入

二、执行命令

基本上和BourneShell相同,只有一点在BourneShell中的”.” 命令在CShell 中

则为”source”命令。

三、流程控制

在CShell 中流程控制不像BourneShell中一般需要使用test命令。

相反地,它和

C 语言类似只要在条件中写出运□式即可。

当运算结果不为零时,其值为真,为零

时其值为伪。

以下是CShell的流程控制

1.if

语法如下

if(expression)simple-command

2.goto

语法如下

gotolabel

这时程式会跳至以l”label:

”开头的那一行执行

if($#argv==2)gotogoodargs

echo‘Pleaseusetwoarguments.’

exit

goodrags:

3.ifthenelse

这和BourneShell的ifthen,ifthenelse,ifthenelif 相似。

语法如下

A.if(expression)then

commands

endif

B.if(expression)then

commands

else

commands

endif

C.if(expression)then

commands

elseif(expression)then

commands

else

commands

endif

4.foreach

这和BourneShell的forin相似。

语法如下

foreachvar(arg-list)

commands

end

5.while

这和BourneShell的while相似。

语法如下

while(expression)

commands

end

6.break及continue

这和BourneShell的break 及continue相似,是用来中断foreach 及while 回

圈。

7.switch

这和BourneShell的case相似。

语法如下

switch(string)

casepat1:

commands1

breaksw

casepat2:

commands2

breaksw

casepat3:

commands3

breaksw

endsw

□附录A expr命令

命令格式

exprexpression

叙述

expression是由字串以及运算子所组成,每个字串或是运算子之间必须用空白隔开

下表是运算子的种类及功能,而优先顺序则以先後次序排列,我们可以利用小括

号来改变运算的优先次序。

其运算结果则输出至标准输出上。

:

 字串比较。

比较的方式是以两字串的第一个字母开始,而以第二个字串的

字母结束。

如果相同时,则输出第二个字串的字母个数,如果不同时则传

回0 。

* 乘法

/ 除法

% 取馀数

+ 加法

- 减法

< 小於

<= 小於等於

= 等於

!

= 不等於

>= 大於等於

> 大於

&AND运算

|OR运算

当expression中含有”*”,“(”,“)” 等符号时,必须在其前面加上”” ,以免被

Shell 解释成其它意义。

expr2*(3+4) 其输出为14

□附录B test命令

命令格式

testexpression

叙述

expression中包含一个以上的判断准则以作为test评诂的标准。

两准则间用”-a”代

表逻辑AND 运算,”-o”代表逻辑OR运算,而在准则前放置一”!

” 代表NOT 运算。

果没有括号,则优先权则为”!

”>“-a”>“-o” 。

和expr命令相同,相使用左右括

号时,必须在其前面加上”” 。

以下是有关准则的叙述(合叙述时传回真,否则传

回伪):

stringstring不为空白字串

-nstringstring的长度大於0

-zstringstring的长度等於0

string1=string2string1等於string2

string1!

=string2string1不等於string2

int1-gtint2int1大於int2

int1-geint2int1大於等於int2

int1-eqint2int1等於int2

int1-neint2int1不等於int2

int1-leint2int1小於等於int2

int1-ltint2int1小於int2

-rfilename 档案可读取

-wfilename 档案可写入

-xfilename 档案可执行

-ffilename 档案为一般档

-dfilename 档案为目录

-sfilename 档案为非空的一般档

test-r“$filename”-a-s“$filename”

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1