美文网首页
Csh常用语法

Csh常用语法

作者: Bruce钟 | 来源:发表于2019-06-06 21:11 被阅读0次

任何时候写代码带上空格都是好习惯,不同语言对空格的处理可能不一样,但是良好的空格是所有语言都支持的

变量与环境变量

设置、删除基本变量 set var = 1unset var
设置、删除环境变量 setenv NAME VALUEunsetenv ENVNAME
数组(列表)变量 set arr = ( a b ) # ('ls') (*.c)

基本语法(if while foreach)

基本表达式 expr

  • 条件表达式
    比较运算: (a < b), 比较运算支持 '< <= == >= >', 适用于整数和字符串
    字符串匹配: (a =~ *.c), 不匹配 !~
    逻辑运算: && || ! (与或非)
    文件测试: ( -f/e/d file )

if 语法

if (expr) command  # one line statement
if (a < b) then    # multi line statement
  command
endif
if { command } then ... endif
常用 if 条件 表达式
数组检查 if ($#arr < 3)
文件检查 if ( -f/e/d $file ) or if { -f/e/d $file }(test command)

foreach 语法

foreach item (list)
    if (expr) break
    if (expr) continue
end

while 语法

while (expr)
  if (expr) break # or continue
end

Switch 语法

switch (var)
  case 1:   # case "str", *.c
    # commands
    breaksw
  default:
    breaksw
endsw

Alias 语法

Csh没有提供函数,只能通过alias实现函数的功能

alias do_fun1 'echo \!:1 \!:2 \!:*'

alias 参数处理: 第一个参数 !:1,最后一个参数 !$, 所有参数 !*
字符串中的 ! 是特殊字符(执行历史命令), 所以需要加上 \ 使用。

参数处理

bash 兼容: $0 $1-9 $* ; shift, 参数个数 $#
argv列表: $argv[1-N], shift argv, 参数个数 $#argv

其他

  • Csh脚本默认会先source $HOME/.cshrc 再执行,#!/bin/csh -f -f 参数可以避免该问题
  • 重定向: cmd > out.log ; cmd >& out.log
  • 获取脚本位置:readlink -f $0 | xargs dirname 适用所有shell脚本

相关文章

网友评论

      本文标题:Csh常用语法

      本文链接:https://www.haomeiwen.com/subject/imwjaqtx.html