genesis2000script编程

genesis2000script编程

ID:36675496

大小:49.51 KB

页数:12页

时间:2019-05-13

genesis2000script编程_第1页
genesis2000script编程_第2页
genesis2000script编程_第3页
genesis2000script编程_第4页
genesis2000script编程_第5页
资源描述:

《genesis2000script编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Genesis2000Script编程一:Genesis-script之C-Shell在unix系统中,像在DOS中的batch一样,你可以把一系列命令输入到一个叫做script的文件中.利用source命令或者设置这个文件的x(可运行)属性并直接键入该文件名,就像用一个命令那样,你就可以让Cshell从文件中读入命令并执行它们.当你执行一个shellscript时,系统会检查script文件的第一行以确定如何执行其中的命令○如果第一行以#!开始,后面跟着一个程序名,系统就会用那个程序来执行script中后面的命令.○如果第一行以#开始,系统会用Cshell执行script.等同于#!/b

2、in/csh○如果第一行不是以#开始,系统就会用Bshell来执行script.等同于#!/bin/sh9.2Cshell编程1.SCRIPT中的参数及变量如何将命令行的参数传给script呢?可以这样:键入script名,后面跟任何你想要传递的参数。Cshell把script名后面的字符按照词(words)来划分后传递给一个叫做argv的变量数组,叫做argumentslist。这样命令行的参数就作为words存储于argv中,连同script名,分别可以被引用为argv[0],argv[1],。。。argv[n],或者你也可以用等效的方法即$0,$1,…,$n来引用它们,其中n是参数的

3、个数。这一点与C语言编程很类似。除了argv,$0,$1,…,$n,等以外,你还可以在script中使用其他变量,有许多符号可以对变量进行操作:读取,赋值,判断属性等等。分述如下:$?namens判断变量是否存在,若存在(被set过)则等于1。否则等于0例如%setvar='abc'%echo$?var#结果为1%unsetvar◎edafans%echo$?var#结果为0$#nameans计算变量name中的词(words)数例如%setvar=(abc)#$#var==3%setvar='abc'#$#var==1%unsetvar#var:Undefinedvariable$$af

4、ans$$是Cshell的特殊变量,用于表示执行此script时的进程号.因为进程号是唯一的,你可以用$$来生成一个唯一的临时文件,比如tmp.$$.它可以避免任何文件名的冲突.当然你也可以开发你自己对$$的独特应用$重定向符号.即从终端读入(一行).比如:echo-n"yesornoseta=($即变量a从终端输入.(如果你输入了一个空行或^D,$#a将等于0$n和$argv[n]实际上有个微小的差别:当n大于参数个数($#argv)时,$argv[n]要报错,而$n永远也不会有这种"下标溢出"的错对其他变量,也不会发生"下标溢出"的错误,例如:当(n>$#var)时,$var[n-]不

5、给任何结果和错误信息.而$var[m-n]给出$var[m]到$var[$#var]的words.如果(m>$#var)则没有任何结果2.文件操作格式-操作符filename-e文件存在返回1(.true.),否则返回0(.false-r文件可读返回1,否则返回0-w文件可写返回1,否则返回0-x文件可执行返回1,否则返回0-o文件属于用户本人返回1,否则返回0.-z文件长度为0返回1,否则返回0.-f文件为普通(plain)文件返回1,否则返回0.-d文件为目录文件时返回1,否则返回0.3.路径名操作ns你可以对路径名进行操作,以便于去掉你不需要的部分:t(tail)只保留路径名最右边的

6、部分,而将前面的全部去掉.(相当于basename):r(root)去掉从"."(dot)开始的后缀部分.:e(end)去掉从左边开始一直的"."的前缀部分:h(head)去掉最后的一部分,只保留文件所在的目录名比如,你有一个叫做/usr/people/user1/file1.txt的文件,在script中将它赋值给变量var_file,则$var_file:t==file1.txt$var_file:r==/usr/people/user1/file1$var_file:e==txt$var_file:h==/usr/people/user14.返回代码严谨的程序应该测试返回代码以判断该

7、程序是正常结束还是别的情况.尤其在你写前后相关的script的时候,后面的命令要用到前面命令的执行结果的时候.一个命令执行后的返回代码存放在叫做status的变量中,当命令执行成功正常退出时status为0,否则为1.◎比如你想检查前面一个命令是否正常地被执行了,从而判断下一个命令是否应该执行,就可以command1setcheckpoint=$status[commandsif(!$checkpoint)thencom

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。