Shell: C Shell (csh)

@ 2010-03-14 13:41:14
标签:

    C Shell(csh) 是日常很常用的一种shell。虽然不是尽善尽美,但多数时候够用了。

    变量

    ### 环境变量
    setenv   MY_ENV "value"
    unsetenv MY_ENV
    
    ### 普通变量
    set v = 123
    unset v
    set v = "top/sub/file.txt"
    
    ### 变量操作
    echo $v:r  ; # root 输出 top/sub/file
    echo $v:h  ; # head 输出 top/sub
    echo $v:t  ; # tail 输出 file.txt
    echo $v:e  ; # extension 输出 .txt
    

    特殊变量 & 预定义变量

    • $?name : 变量name是否存在
    • $0 : 程序名字
    • $1, $2, .. , $n : 第n个命令行参数。等同于 $argv[n]
    • $$: 进程ID
    • $|: 当前shell执行的最后一个后台进程的ID
    • $status : 最近一条命令的返回值。通常0表示成功
    • $cwd : 当前工作目录 cwd=current working directory

    控制结构

    主要是指ifforeachwhileswitch几种情况

    #!/bin/csh
    
    ### 条件判断
    if ( $#argv < 2 ) then
     echo "usage: $0 minutes message" 
    else if ($#argv > 4) then
     echo "too many arguments"
    endif
    
    ### foreach 循环
    foreach file (`ls -1`)
      echo $file
    end
    
    ### while 循环
    set i = 2
    set j = 1
    while ( $j <= 10 )
        echo '2 **' $j = $i
        @ i *= 2
        @ j++
    end
    
    ### switch 分支
    switch ($file)
      case d?:
          echo $i is short
          breaksw
      default:
          echo $i is long
    endsw
    

    命令行编辑

    C Shell默认是Emacs风格的键盘绑定。可才通过命令bindkey来查看当前按键绑定和设置编辑风格。

    如果要使用Vi风格的键盘绑定,可以使用命令bindkey -v

    参考资源

    标签:

      分享到:
      comments powered by Disqus

      24/28ms