genesis2000脚本简单的csh语法讲解
一、变数
1. 字串变数
这个部分和Bourne Shell的变数一样,只不过在设定变数值时不能使用Bourne
Shell的方式,而必须打:
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
commands
else
commands
endif
4. foreach
这和Bourne Shell的for in相似。语法如下

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。