`

TCSH 编程(3)

阅读更多

 

控制流结构

 

1,                     退出状态

任何命令进行时都将返回一个推出状态,如果要观察其退出状态,可使用命令echo $?来查看。

要推出当前进程,tcsh 提供命令exit ,一般的格式为exit   n (n 为一数字)

 n0,退出成功,无错误。

n1,退出失败,某处有错误

推荐加入脚本本身的退出脚本值是一种良好的编程习惯。

 

 

2,if-then-else 语句

格式:if( expr )then              //如果此处then另起一行,则会报错”if:empty if.”

                  commands

            else

                  commands

            endif                         // 此处endif 可以省略

 

例子:

1,简单的if-then-else语句。

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="width: 414.75pt; height: 168.75pt" type="#_x0000_t75"><imagedata o:title="5" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata></shape>

 

3,测试文件拷贝是否成功。

<shape id="_x0000_i1026" style="width: 415.5pt; height: 179.25pt" type="#_x0000_t75"><imagedata o:title="6" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png"></imagedata></shape>

 

小问题:在输出时,系统提示的出错信息和自己设置的提示都显示出来,如何屏蔽掉系统的出错提示呢?―――――错误重定向。

<shape id="_x0000_i1027" style="width: 414.75pt; height: 199.5pt" type="#_x0000_t75"><imagedata o:title="7" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png"></imagedata></shape>

 

3 , switch 语句

格式:switch( expression )

                  case comparasion 1:

                          commands

                          breaksw

                  case comparasion 2:

                           commands

                           breaksw

                  default:

                  endsw

例子:

<shape id="_x0000_i1028" style="width: 414.75pt; height: 264.75pt" type="#_x0000_t75"><imagedata o:title="10" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image007.png"></imagedata></shape>

1”set va = $<”意思为从键盘读入一个数值作为变量va 的值。

1,如果每个case后面不加breaksw的话,则程序继续执行case 之后的语句 

                

4 , for循环语句

格式:foreach variable( wordlist )

            commands

……

end

 

含义解释:这个语句表示变量将取得wordlist 中每个可能的值。执行的循环命令是在语句foreach end 之间的。

例子:

1,给某个目录下的所有文件改名。<shape id="_x0000_i1029" style="width: 414.75pt; height: 222.75pt" type="#_x0000_t75"><imagedata o:title="11" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image009.png"></imagedata></shape>

 

 

tcsh下,*代表改目录下的所有文件

 

2,计算某个目录下的文件数目。

<shape id="_x0000_i1033" style="width: 414.75pt; height: 198pt" type="#_x0000_t75"><imagedata o:title="12" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image011.png"></imagedata></shape>

 

注意点:在tcsh下,关于变量的赋值问题。如果写成:

set temp = 1

temp  = 2

则会报错“temp : command not found”解决方式是第二句写成set temp = 2.实际的操作实现是将原来的temp变量覆盖,并没有重新分配空间。

 

更简便的实现方法:

 

set temp =*

echo $#temp

 

5while语句

格式:while ( expr )

             commands

             ……

             end

 

 

6,循环控制语句

1,break:用于退出最接近的foreach/while循环过程,可以制定跳出的层数。如果在两层循环内,则用break 2正好跳出。

 

2,continue:此命令继续执行最靠近的的while/foreach语句。当前其他的命令被执行。

 

例子:

<shape id="_x0000_i1030" style="width: 414.75pt; height: 265.5pt" type="#_x0000_t75"><imagedata o:title="16" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image013.png"></imagedata></shape>

 

 

数组

形式:括号中用空格或制表符分隔的一列词,数组元素的下标从1开始(和传统中的数组定义有所不同)。

例子:

<shape id="_x0000_i1031" style="width: 414.75pt; height: 202.5pt" type="#_x0000_t75"><imagedata o:title="13" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image015.png"></imagedata></shape>

 

重定向

一:标准输入,输出和错误

 

            当我们在shell中执行命令得时候,每个进程都和三个打开的文件相联系,并使用文件描述符来应用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名。

 

文件

文件描述符

缺省的设备

输入文件-标准输入

0

键盘或是文件

输出文件-标准输出

1

屏幕或是文件

错误输出文件-标准错误

2

屏幕或是文件

 

二:文件重定向

 

在执行命令时,可以指定命令的标准输入,输出和错误,要实现这一点就需要使用文件重定向,下表完整的列出了最常用的重定向组合。

 

规则:

<shape id="_x0000_i1032" style="width: 477pt; height: 230.25pt" type="#_x0000_t75"><imagedata o:title="14" src="file:///C:%5CDOCUME~1%5Celeicen%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image017.png"></imagedata></shape>

 

几种常用用法:

1,ls  -a >> record.txt

(输出重定向,将当前目录下的文件显示内容附加到record.txt)

 

2,( cat 1.txt 2.txt > account.out) >& account.error

(将1.txt 2.txt文件的合并内容输入到account.out中,如果发生错误则输入到account.error中)

 

3,grep "good" 1.txt >& account.out

(在1.txt中搜索含有good的字符串,并将输出结果和可能发生的错误都输入到account.out中)

分享到:
评论

相关推荐

    tcsh编程.pdf

    tcsh编程指导,解决tcsh基础问题 TCSH shell不同于其他的shell,因为控制结构更符合程序设计语言的格式。例如TCSH 的test条件的控制结构是表达式,而不是linux命令,得到的值是逻辑值true或false,TCSH的表达式与...

    TCSH shell 编程入门 (PDF)

    TCSH shell不同于其他的shell,因为控制结构更符合程序设计语言的格式。例如TCSH 的test条件的控制结构是表达式,而不是linux命令,得到的值是逻辑值true或false,TCSH的表达式与C语言中的表达式基本相同。

    Linux 编程入门以及工具使用

    shell编程语言如BASH、TCSH、GAWK、Perl、Tcl和Tk都利用自己的解释器。用这些语言编制的程序尽管是应用程序文件,但可以直接运行。编译器则不同,它将生成一个独立的二进制代码文件然后才可以运行。

    LINUX与UNIX SHELL编程指南

    本书包含了所有你需要了解的Linux Shell的编程知识,是利用Linux核心Shell(bash和tcsh)与Linux Shell核心编程工具(grep、sed和gawk)进行编程的完整的,循序渐进式的指南,你将了解到:什么是Linux Shell,它们能完成...

    shell编程学习笔记

    变量: 变量的赋值和引用 在shell编程中变量没有类型,简称弱类型编程语言,不需要声明,在引用这个变量时会创建它(在变量名前加$符号引用变量的值)。在定义变量时,若String中包含空格、制表符、换行符,需用单...

    LINUX命令、编辑器与SHELL编程PDF.part01

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    LINUX命令、编辑器与SHELL编程PDF.part02.rar

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    轻松学用 Linux + shell 编程.pdf

    什么是 Shell? Shell是一种具备特殊功能的程序,它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口。为什么我们说 shell 是一种介于...本教程正是教你如何用linux shell编程。简单明了,通俗易懂。

    shell编程详细参考

    shell编程完整清晰的电子书,非常好的参考教材。共29章和附录。pdf文档,非扫描版。

    LINUX命令编辑器与SHELL编程(中文)01

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制 shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于提高...

    LINUX命令、编辑器与SHELL编程.part05

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    linux与unix shell编程指南读书笔记

    本书重点讲述了当下最流行的两个Linux Shell——Borne Again Shell (bash)和TC Shell(tcsh),从它们的新特性、增加和内建的插件讲起直至具体的应用。通过对一个个实例的讲解,循序渐进地介绍了Linux Shell中的各个...

    LINUX命令、编辑器与SHELL编程.part03.rar

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    csh,tcsh,bash,sh等shell的区别

    出自bash的faq,仔细看看。顺便翻译学习一下。 代码如下:Section C: Differences from other Unix shellsC:跟其他UNIX shells脚本的区别C1) How does bash differ from sh, the Bourne shell?C1) bash和 sh、...

    LINUX命令、编辑器与SHELL编程.part04.rar

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    LINUX命令、编辑器与SHELL编程.part11.rar

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    LINUX命令、编辑器与SHELL编程.part12.rar

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    LINUX命令、编辑器与SHELL编程.part08.rar

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    LINUX命令、编辑器与SHELL编程.part07.rar

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

    LINUX命令、编辑器与SHELL编程.part09.rar

     关于使用bash和tcsh进行基本的和高级的shell编程的专家指南;  定制shell以及在命令行上交互使用shell的提示和技巧;  提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于...

Global site tag (gtag.js) - Google Analytics