csh和bash的语法对比

一般来说,能用bash 语言编程就不用csh编程,因为bash语言的使用体验更好,但是某些情况的terminal窗口就是csh语言,因而,用csh语言会更适合。下面将bash和csh,做一些对比,方便将bash转变成csh.
一,关于变量设置,和环境变量设置
bash:

        a=`pwd`                     # =号两边必须无空格,命令转变量也可以用$(pwd)
        export b=1                  # 设置环境变量

csh

        set a = `pwd`        # 用关键词 set, = 两边必须有空格,命令转变量只能用``
        setenv  b   1         # 设置环境变量

二,关于数组
bash:

   array=(1 2 3 4 5)                     # 数组元素用空格隔开
   ${array[@]}  #或者 ${array[*]}        # @ 或者星都可以代表所有元素
   ${#@array[@]}                           # 表示数组个数
   for i  in  ${array[@]}; do                   # 使用遍历的时候的语法
      echo $i
    done

csh:

   set array = (1, 2, 3, 4, 5,)               # 数组元素用,隔开,或者用空格隔开也可以
   ${array[*]}                                # 只能用星号代表所有元素
   $#array                                    # 表示数组个数
   foreach i (${array[*]}# 遍历的时候数组外要再加一对括号
       echo $i
   end

三,关于判断if
bash:

   if [[ a != b ]];then
         echo "ok"
    fi

csh: csh的判断条件一般加双引号,例如-f “/path/abc.py”

  if (a != b )  then           
    echo "ok"                               
  endif

四, 关于while循环
bash:

whiletrue ) 
do
        echo "ok"
done

csh

while (1)
      echo "ok"
 end

五,关于函数
bash:

   function      abcd() {
         a=1
   }

csh: csh没有函数,只能使用label和goto

 goto label
 label:
             ...
             ...

如果你想快速执行Cshell, 即不想读入Cshell的启动程序(.cshrc等), 在script文件的第一行应该用类似下面的格式:

#!/bin/csh -f

六,关于一些不同的技巧
bash中获取文件所在的目录位置

CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd )

csh中则是:

set script_dir=`readlink -f -- "$0"`
set CURDIR=`dirname -- $script_dir`

参考文章链接:
http://blog.sina.com.cn/s/blog_13f7886010102xqju.html
关于cshell的最详细文档可以参考这个http://sunner.cn/courses/OS/Learning_UNIX.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值