tcsh 基本命令

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

  1. 测试表达式

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

    cmd01

  end

  常用检测命令:

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

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

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

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

  1. 命令置换

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

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

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

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

  1. 连续执行

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

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

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

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

  1. 其他命令

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

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

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

  1. 几个 tcsh 实例

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

    文件名 auto_run.sh :

     

to be continue ...

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

posted @ 2022-11-30 01:56  晴云孤魂  阅读(285)  评论(0)    收藏  举报