• 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

    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 ...

     

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

     

  • 相关阅读:
    spring boot redis 使用代码配置 redis的连接信息
    mysql Last_SQL_Error
    mysql relay log
    idea插件开发
    全网唯一正常能用的centos7 安装mysql5.7.35 22 33 25
    LVM逻辑卷管理器
    git提交代码
    数据中心统一网络实战:FCoE部署指南
    详解HBA、NIC与CNA的区别
    存储网络 – 了解FCoE的八个技术细节
  • 原文地址:https://www.cnblogs.com/xiaoxie2014/p/11475568.html
Copyright © 2020-2023  润新知