一般来说,能用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 $idone

csh:

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

三,关于判断if
bash:

   if [[ a != b ]];thenecho "ok"fi

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

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

四, 关于while循环
bash:

while ( true )
doecho "ok"
done

csh

while (1)echo "ok"end

五,关于函数
bash:

   function      abcd() {a=1}

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

 goto labellabel:......

如果你想快速执行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

csh和bash的语法对比相关推荐

  1. Shell编程之Csh和Bash的经验总结

    文章目录 前言 1. 变量和环境变量设置 1. csh 2. bash 2. if语句 1. csh 2. bash 3. while循环 1. csh 2. bash 4. 数组 1. csh 2. ...

  2. csh和bash的区别

    csh和bash的区别 csh和bash是两种不同的Unix和Linux shell,它们有一些语法和功能上的差异.例如: csh使用C语言风格的语法,如if endif, while end等,而b ...

  3. [转]C++/CLI与C#常用语法对比

    [转]C++/CLI与C#常用语法对比 Kenny Kerr 一篇名为C++: The Most Powerful Language for .NET Framework Programming文章中 ...

  4. Docker安装部署MongoDB及MySql和MongoDB的语法对比

    MongoDB是一个免费的.开源的.跨平台分布式面向文档存储的数据库,由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品 ...

  5. [zz]mysql 和 mongo db 语法对比

    mysql 和 mongo db 语法对比 本文描述了MySQL中的常用SQL语句在MongoDB中的写法,如果你长期使用MySQL而对MongoDB跃跃欲试,这篇简单的文章可以帮助你更快的进入角色. ...

  6. Kotlin与Java语法对比总结

    文章目录 前言 一.变量 二.函数 三.程序的逻辑控制 1.条件语句 2.循环语句 四.面向对象编程 1.类与对象 2.继承 3.构造函数 4.接口 5.数据类与单例类 五.Lambda编程 1.集合 ...

  7. 查看终端是csh还是bash和更改shell设置

    1.判断终端是csh还是bash: 终端命令:env 直接执行:echo $SHELL 可以直接看出当前使用的shell 2.更改shell设置: 终端命令:chsh -s /bin/bash 执行完 ...

  8. Zsh vs. Bash不完全对比解析,zsh是一种更强大的被成为“终极”的Shell

    https://www.zhihu.com/question/21418449 Mort | Zsh vs. Bash:不完全对比解析(1) 2014-10-07  bdpqlxz Zsh和Bash, ...

  9. MongoDB命令及SQL语法对比

    2019独角兽企业重金招聘Python工程师标准>>> mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三 ...

最新文章

  1. android 手机推荐,2018年安卓机皇推荐,这几款是真的不错
  2. 项目调试之小工具---文件名替换
  3. java控制系统音量_Java 控制 Windows 系统音量-Go语言中文社区
  4. 斗地主AI算法——第十章の被动出牌(4)
  5. predis操作大全
  6. java dojo_Dojo入门三种HelloWorld!
  7. Redis 突然变 慢 了,是运维还是开发的错?
  8. dnslog盲打学习
  9. This tag and its children can be replaced by one TextView/ and a compound drawable
  10. 老司机教你如何优雅地完成一个小项目测试
  11. ipa在线下载安装(itms-services)
  12. GD32的flash读保护和写保护
  13. python实现从oracle读数据写入mysql(1)
  14. 1323: 三角形判定
  15. java 发送客服消息,Java调用微信客服消息实现发货通知的方法详解
  16. 剑指Offer面试题解总结21-30
  17. GUI编程--PyQt5--QMessageBox
  18. python死循环用什么好弄_用python死循环
  19. 数据库-订单商品表(单表-商品销量表)
  20. 2018中国高校计算机大赛—大数据挑战赛(top2解题方案)

热门文章

  1. 不要为无效社交浪费时间!你自己不优秀,谈什么人脉!
  2. Flink整合Drools规则引擎
  3. protostuff java_Protostuff序列化和反序列化的使用说明
  4. C# HexEdit
  5. 面试:面经笔记 2017.7
  6. Chrome 扩展 H5 游戏结构检查器 GameInspect 支持 Laya, egret, cocosCreate, cocos2d-js
  7. 基于开源项目kkFileView打造文件预览
  8. 添加背景音乐不覆盖原声怎么弄?音频转换器免费软件哪个好
  9. Object转map方法
  10. MyEclipse 护眼配色