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

相关文章

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

C++语法知识点合集:11.模板

文章目录 一、非类型模板参数1.非类型模板参数的基本形式2.指针作为非类型模板参数3.引用作为非类型模板参数4.非类型模板参数的限制和陷阱:5.几个问题 二、模板的特化1.概念2.函数模板特化3.类模板特化(1)全特化(2)偏特化(3)类模板特化应用示例 三、模板分离编译1.概念2.模板的分离编译 模版总结 一、非类型模板参数 模板参数分类类型形参与非类型形参 非类型模板

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe

类的load方法和initialize方法对比

1. load方法在main()之前被调用,而initialize方法在main()之后调用 load方法实际是在load_images过程中被调用的。load_images会将当前应用依赖的所有镜像(动态库)加载到内存,在在加载中首先是对镜像进行扫描,将所有包含 load 方法的类加入列表 loadable_classes ,然后从这个列表中逐一调用其所包含的 load 方法。 +[XXCl

Hibernate框架中,使用JDBC语法

/*** 调用存储过程* * @param PRONAME* @return*/public CallableStatement citePro(final String PRONAME){Session session = getCurrentSession();CallableStatement pro = session.doReturningWork(new ReturningWork<C

ORACLE语法-包(package)、存储过程(procedure)、游标(cursor)以及java对Result结果集的处理

陈科肇 示例: 包规范 CREATE OR REPLACE PACKAGE PACK_WMS_YX IS-- Author : CKZ-- Created : 2015/8/28 9:52:29-- Purpose : 同步数据-- Public type declarations,游标 退休订单TYPE retCursor IS REF CURSOR;-- RETURN vi_co_co

JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`详解及对比

在JavaScript中,正则表达式(Regular Expression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。 正则表达式基础 在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则

【HarmonyOS】-TaskPool和Worker的对比实践

ArkTS提供了TaskPool与Worker两种多线程并发方案,下面我们将从其工作原理、使用效果对比两种方案的差异,进而选择适用于ArkTS图片编辑场景的并发方案。 TaskPool与Worker工作原理 TaskPool与Worker两种多线程并发能力均是基于 Actor并发模型实现的。Worker主、子线程通过收发消息进行通信;TaskPool基于Worker做了更多场景化的功能封装,例

ElasticSearch的DSL查询⑤(ES数据聚合、DSL语法数据聚合、RestClient数据聚合)

目录 一、数据聚合 1.1 DSL实现聚合 1.1.1 Bucket聚合  1.1.2 带条件聚合 1.1.3 Metric聚合 1.1.4 总结 2.1 RestClient实现聚合 2.1.1 Bucket聚合 2.1.2 带条件聚合 2.2.3 Metric聚合 一、数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如:

react笔记 8-16 JSX语法 定义数据 数据绑定

1、jsx语法 和vue一样  只能有一个根标签 一行代码写法 return <div>hello world</div> 多行代码返回必须加括号 return (<div><div>hello world</div><div>aaaaaaa</div></div>) 2、定义数据 数据绑定 constructor(){super()this.state={na