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:

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


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1114614

相关文章

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

exfat和ntfs哪个好? U盘格式化选择NTFS与exFAT的详细区别对比

《exfat和ntfs哪个好?U盘格式化选择NTFS与exFAT的详细区别对比》exFAT和NTFS是两种常见的文件系统,它们各自具有独特的优势和适用场景,以下是关于exFAT和NTFS的详细对比... 无论你是刚入手了内置 SSD 还是便携式移动硬盘或 U 盘,都需要先将它格式化成电脑或设备能够识别的「文

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm