csh(tcsh)编程

2009-05-13 14:59:22来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

   
TCSH shell不同于其他的shell,因为控制结构更符合程序设计语言的格式.例如
TCSH 的test条件的控制结构是表达式,而不是linux命令,得到的值是逻辑值true
或false,TCSH的表达式与C语言中的表达式基本相同.(但是, shell中, true为1, false
为0, C语言中, false 为0, 非0为真, tcsh中 $? 查看是否被定义, 如 $?prompt)。
一,TCSH shell变量,脚本,参数
用户可以在shell中定义变量,为变量赋值以及引用脚本参数.TCSH使用set,@,setenv定
义一变量,也可以用相同的方法定义数值变量和数组,用户通过@命令定义的数值变量来
进行算术运算,用户使用圆括号()和方括号[]定义和引用数组.脚本也可以用相同的方
法操作,但是有个例外,尽管可以用echo命令输出提示符,但没有read命令处理输入,相
反,必须重定向到一个变量里.
二,脚本输入和脚本输出: $  大于
= 大于等于
!代替>
四,控制结构
同其他shell一样,TCSH也有一系列的控制结构控制脚本的命令的执行.while和if控
制结构是最常用的控制结构.switch和foreach是更专用的控制结构.switch是if条件
的限定形式,检查数值是否等于一系列可能的数值中的一个数值.foreach是循环结构
的限定形式.浏览数值列表,给变量赋新的数值.
TCSH不同的控制结构列表:
条件控制结构; 功能
if (expression) then
   commands
endif
if (expression) then
   command1
else
   command2
endif
switch (string)
        case pattern:
              commands
              breaksw
        default:
               commands
endsw
循环控制结构: 功能
while (expression)
       commands
end
foreach variable (argument-list)
        commands
end
TCSH中的控制结构有别于其他的shell,因为它更接近编程语言(C).TCSH的条件表达
式的值为true/false.BASH和TCSH主要区别在于TCSH的结构不可重定向或进行管道
输出.
五,测试表达式;()
if和while控制结构把表达式用作测试.表达式测试的结果为非零(1)表示真,而零
(0)表示假(跟BASH相反).测试表达式可由算术/字符串比较,但是字符串只能作相
等和不相等的比较.而且表达式必须要在()括号内.
如:
if (expression) then
command
endif
TCSH有一系列的运算符来分别对字符串进行测试比较.正则表达式可以包含shell脚本的
指令的字符串.如:
if ( $var =~[Hh]* ) then #如果变量$var以字母是大写/小写Hh开头,的字符串
echo information #执行命令
endif #结束
有很多测试文件的操作与BASH完全相同.如:
if ( -r myfile ) then #测试myfile是否可读
echo info
endif
测试表达式的基本操作:
字符串比较: 功能
== 是否相等,若相等返回真
!= 是否不等,若不等返回真
=~ 字符串和模式进行测试是否相等(模式为任意正则表达式)
!~ 字符串和模式测试是否不等(模式为任意正则表达式)
文件测试: 功能
-e 测试文件是否存在
-r 测试文件是否可读
-w 测试文件是否可写

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:console下的铃声真的很烦,去掉吧。

下一篇:OpenBSD Updating release system to stable