二、脚本输入和脚本输出: $ <
用户能够在脚本范围中定义和使用变量。在下例中,使用文本编辑器把赋值操作和echo之类的linux命令放在一个文件中。然后可以产生可执行文件并像其 他命令一样在命令行中执行它,要记住添加可执行权限,必须使用带u+x参数的chmod命令或者带绝对参数700的chmod命令。本中,可以使用 echo命令去输出数据,但是,必须通过重定向标准输入把输入读入变量。在TCSH中没有linux read命令的比较版本。记住TCSH全部的脚本文件的第一行的第一个字符必须是“#”字符。 比如:
# #display "hello"
set string="hello"
echo The value of string is $string
set命令和重定向符号结合$= 大于等于
!代替>
1、条件控制结构;功能
if (expression) then 注:如果expression为真,则执行commands commands
endif
if (expression) then 注:如果expression为真,则执行command1,否则执行
command1 command2.
else
command2
endif
switch (string) 加注:允许在几条替换命令中选择,string为不同的模式
case pattern:
commands
breadsw
default:
commands
endsw
2、循环控制结构: 功能
while (expression) 只要expression为真,则重复执行commands, commands 直到expression为假时跳出循环
end
foreach variable (argument-list)迭代循环获得和argument-list中一样多的参数commands (每次循环variable被设置为列表的下一个参数;end 操作方式同BSH)
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
写为$*。#argv参数标识符包含输入在命令行中的参数号码,可检查$#argv变量。如:
arglist #
echo "The number of arguments entered is $#argv"
echo "The list of arguments is : $argv
"
%tcsh arglist a b c
The number of arguments entered is 3
The list of arguments is : a b c