tcsh 基本命令

ε祈祈猫儿з 提交于 2020-01-15 21:27:37

shell 是一种命令行程序, linux 用户可以通过 shell 与操作系统内核进行交互。

shell 分为好几种:sh,bash,csh,tcsh, 其中 tcsh 是 csh 的增强版,常用的两种 shell 就是 bash 和 tcsh。

一般linux 默认shell 是 bash,但是IC公司用的较多的是 tcsh,二者的语法和内建命令相差较大,关于bash,网上资料非常多,这里主要记录 tcsh 的语法和基本命令。

具体使用哪个shell 可以在脚本第一行定义: #! /bin/bash  或者   #! /bin/tcsh

查看当前默认shell 可以看环境变量  echo $SHELL 

 

tcsh 基本语法:

 

1. 创建字符串变量:  set  var = hello; set var01 = “hello world” ;echo $var   注意等于号

    创建数值变量:    @  num = 101  ; @ n01 = $num * 2 ; echo $n01    # 注意用 @ 开头,且@与变量之间需留空格

 

2. 控制流(if  while  foreach )

(a).  if (condition)  then   # 注意 if 和 then 必须写在同一行,if 条件用小括号

    cmd01

    cmd02  # 可以写很多行命令

  else 

    cmd03

  endif    # 一定要有这个 endif 结束

(b). while ( condition )

    cmd01

  end

(c). foreach  var  ( var-list ) 

    cmd01

  end

 

3. 测试表达式

  if ( -e  file01 ) then    # 检测文件 file01 是否存在

    cmd01

  end

  常用检测命令:

  -e  file01  检测文件 file01 是否存在,存在则返回 1, 否则返回 0

  -f   file01  检测文件 file01 是否是普通文件

  -d  file01  检测文件 file01 是否是目录  

  -w file01   检测文件 file01 是否可写

 

 4. 命令置换

  如果要将一个shell命令的执行结果作为另一个命令的输出,可以用 `cmd`,注意这里的  `  不是单引号,而是键盘 ESC 下方那个键,比如:

  echo  stage_`date`     #(而在 tcl 语言中,引用shell命令的格式是  echo stage_[sh date]  )

  echo  " the stage finish at  `date` "   # 双引号中的大部分特殊字符都会失去其特殊意义,但是有三种字符除外:变量置换符、命令置换符、转义字符,即  "   $ `  \  " 

  单引号中所有特殊字符都会变成普通字符,适合用在 alias 中

 

5.  连续执行

  如果需要在一行命令中连续执行多条shell命令,有以下几种写法:

  1) cmd1 ; cmd2 ; cmd3            # 按顺序执行三个 cmd,不管是否成功执行

  2) cmd1 && cmd2 && cmd3     # 顺序执行三个 cmd,只有前边的 cmd 执行成功,才会继续执行

  3) cmd1 || cmd2 || cmd3         #  如果 cmd1 执行成功,就不执行之后的 cmd。

 

 6. 其他命令

  setenv   var  value      # 设置环境变量 var ,全局可用,注意这里没有等于号

  printenv  env_name    # 显示环境变量,如果没参数,就显示所有环境变量

  umask  022   # 设置新建文件默认属性, 022 是八进制,且表示取消掉权限,所以等价于 chmod 755

 

 7. 几个 tcsh 实例

  1).   每隔半小时检测一次 flag 文件是否存在,不存在就继续等待,若存在就执行make run

    文件名 auto_run.sh :

      

 

 

 

to be continue ...

 

|--------------------------------------|

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!