csh和bash的语法对比

2024-08-28 11:18
文章标签 语法 bash 对比 csh

本文主要是介绍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 $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:

whiletrue ) 
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的语法对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114614

相关文章

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入