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主要是指if
、foreach
、while
和switch
几种情况
#!/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
。