genesis2000脚本简单的csh语法讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
genesis2000脚本简单的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) simple-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
else
commands
endif
4. foreach
这和Bourne Shell的for in相似。语法如下
foreach var (arg-list)
commands
end
5. while
这和Bourne Shell的while相似。语法如下
while (expression)
commands
end
6. break及continue
这和Bourne Shell的break 及continue相似,是用来中断foreach 及while 回
圈。
7. switch
这和Bourne Shell的case相似。语法如下
switch (string)
case pat1: