`

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-6.18.01.tar.gz

    C shell最初由Bill Joy为Berkeley Software Distribution (BSD) 版本的Unix设计,因其语法类似于C编程语言而得名。而tcsh则是C shell的一个增强版,由Todd Vierling开发,它引入了许多新特性,包括自动补全、历史...

    壳编程语言:Tcsh.zip

    史上最全编程语言全套教程,共99门编程语言,包括: 函数式编程语言 壳编程语言 常见编程语言 并行编程语言 数据分析编程语言 数据库查询语言 系统编程语言 脚本编程语言 逻辑编程语言 面向对象编程语言 等所有常见...

    tcsh语法总结word

    - 控制结构更接近传统编程语言的格式,如C语言。 - TCSH的条件控制结构基于表达式而非Linux命令,其返回逻辑值`true`或`false`。 - **TCSH与C语言的相似性**: - TCSH的表达式语法与C语言非常相似,这使得程序员...

    shell编程入门教程

    shell 的历史悠久,UNIX 系统上有多种 shell,包括 sh(Bourne Shell)、csh(C Shell)、ksh(Korn Shell)、tcsh(TENEX C Shell)和 bash(Bourne Again Shell)。每种 shell 都有其特点和功能,例如 csh 支持...

    Shell编程中文手册.pdf

    Linux 提供的 Shell 解析器有 bash、sh、dash、tcsh、csh 等。Centos 的默认解析器是 bash。bash 和 sh 之间存在关系,sh 是 bash 的符号链接。 Shell 脚本入门 Shell 脚本是指一系列的命令集合,用于自动完成某些...

    Linux的shell编程

    csh(C Shell)实际上是tcsh的别名,具有较多的内置命令和复杂的功能。zsh则是一个功能极其丰富的shell,但因其庞大,一般用途可能并不需要。 shell编程的基础涉及变量定义、参数传递以及控制结构。shell脚本...

    shell编程资料

    常见的shell有Bash(Bourne-Again SHell)、Sh、Csh、Tcsh等,其中Bash是最广泛使用的。学习shell编程,首先要了解基本的命令行操作,如创建、移动、删除文件和目录,以及查看文件内容等。 接下来,我们深入到shell...

    Linux 编程基础

    例如,shell脚本语言如BASH、TCSH等就依赖于解释器,而编译型语言如C、C++则需要通过编译器预处理、编译和链接生成可执行文件。 在编写代码时,遵循GNU编程风格是必要的。这包括将函数返回类型与函数名分两行写,...

    Linux Shel 编程从初学到精通 配套光盘代码

    1. **Shell种类**:Linux中有多种Shell,如Bash(Bourne-Again SHell)、Sh、Csh、Tcsh等,其中Bash是最常用的一种,它继承了Sh的功能,并添加了许多新特性。 2. **基本命令**:Shell编程的基础是掌握各种内置命令...

    linnux下Shell编程基础

    csh(通常指向tcsh)和zsh则提供了更多高级功能和命令,适合对Shell有深入需求的用户。 进行Shell编程,也被称为Shell脚本或Shell命令文件,可以让用户编写一系列命令来实现自动化任务。这包括定义变量、参数,以及...

    Linux与UNIX Shell编程指南.rar

    在Linux和UNIX世界中,常见的Shell有Bash(Bourne Again SHell)、Sh(Bourne Shell)、Csh(C Shell)和Tcsh(Turbo C Shell)。其中,Bash是目前最广泛使用的Shell,它继承了Sh的功能,并添加了许多增强特性,如...

    Linux shell编程

    3. **控制结构**:Shell编程支持条件语句(if-else)、循环(for、while、until)以及函数定义。这些结构使得编写复杂的自动化脚本成为可能。 4. **命令行参数**:在Shell脚本中,可以使用$1, $2, ... 来访问命令行...

    Shell编程中文版教程.zip

    常见的Shell有Bash(Bourne-Again SHell)、Csh、Tcsh、Zsh等,其中Bash是大多数Linux发行版的默认Shell。 2. **基础语法**:Shell脚本的基本结构包括变量定义、条件语句(if-else)、循环语句(for、while)、函数...

    LINUX与UNIX SHELL编程指南

    在Linux和Unix系统中,Shell主要有Bash(Bourne Again SHell)、C Shell(csh)、TCSH( TENex C Shell)以及KSH(Korn Shell)等。其中,Bash是目前最广泛使用的Shell,也是GNU/Linux系统的默认Shell。本书可能着重...

    Ebook - Linux-Unix-Shells, Bourne-Shell, Korn-Shell, C-Shell, Bash, Tcsh.pdf

    根据提供的文件信息,本书《LINUX-UNIX-Shells》是一本详细介绍各种Unix/Linux下的Shell环境的书籍,包括了Bourne Shell、Korn Shell、C Shell、Bash以及Tcsh等主流Shell类型。该书由Helmut Herold编写,并且已经是...

Global site tag (gtag.js) - Google Analytics