csh和bash的区别
csh和bash的区别
csh和bash是两种不同的Unix和Linux shell,它们有一些语法和功能上的差异。例如:
- csh使用C语言风格的语法,如if endif, while end等,而bash使用Bourne shell风格的语法,如if fi, for do done等。
- csh设置变量时使用set命令,并且=号两边不能有空格,如set a=pwd;而bash设置变量时不需要set命令,并且=号两边必须无空格,如a = pwd。
csh设置环境变量时使用setenv命令,如setenv PATH $PATH:/usr/local/bin;而bash设置环境变量时使用export命令,并且=号两边不能有空格,如export PATH=$PATH:/usr/local/bin。 - csh引用变量时使用$符号,并且可以省略{}符号,如echo $a;而bash引用变量时也使用$符号,但是如果变量名后面紧跟其他字符,则必须加上{}符号以区分变量名和其他字符,如echo ${a}b。
- csh支持算术运算符 @ 和 $(),并且可以直接在shell中进行数学计算,如 @ a = 1 + 2或 set a = $(1 + 2);而bash支持算术运算符 $[] 和 $(()) 或let命令,并且也可以直接在shell中进行数学计算,如 a=$[1+2] 或 a=$((1+2)) 或 let a=1+2。
- csh支持历史命令替换符 !! 和 !n(n为数字),并且可以直接在shell中重复执行或修改之前输入过的命令,如 !! 或 !5;而bash也支持历史命令替换符 !! 和 !n(n为数字),但是还支持历史命令搜索功能(按Ctrl+R键),并且也可以直接在shell中重复执行或修改之前输入过的命令。
- csh支持别名功能alias,并且可以在shell中为常用的命令或参数设定简短的名称以方便输入,如alias ll ‘ls -l’;而bash也支持别名功能alias,并且也可以在shell中为常用的命令或参数设定简短的名称以方便输入。
- csh不支持数组类型的变量,并且只能通过循环来遍历一个列表或文件夹下的文件;而bash支持数组类型的变量,并且可以通过下标来访问数组元素或通过*来遍历数组所有元素。
- csh支持文件名通配符和?,并且可以在shell中匹配任意长度或单个字符的文件名,如ls .txt 或 ls ??.c;而bash也支持文件名通配符和?,但是还支持正则表达式的元字符,如[ ]、^、$等,并且可以在shell中匹配更复杂的文件名模式,如ls [a-z].txt 或 ls ^a.*c$。
- csh不支持函数定义,并且只能通过外部脚本或命令来实现函数功能;而bash支持函数定义,并且可以在shell中直接定义和调用函数,如function hello() { echo “Hello world!” } 或 hello() { echo “Hello world!” }。
- csh不支持重定向符号>和<的多次使用,并且只能将标准输出或标准输入重定向到一个文件或设备;而bash支持重定向符号>和<的多次使用,并且可以将标准输出或标准输入重定向到多个文件或设备,如cat file1 > file2 > file3 或 cat < file1 < file2。
- csh不支持管道符号|的多次使用,并且只能将一个命令的输出作为另一个命令的输入;而bash支持管道符号|的多次使用,并且可以将多个命令的输出作为另一个命令的输入,如ls | grep a | wc -l。
csh和bash的区别相关推荐
- shell脚本头,#!/bin/sh与#!/bin/bash的区别.
因为今天写了个小脚本,死活不成功,总是报文件或者目录不存在,问了一下我们马同学的正常写法,发现只有脚本头的区别,也就是今天本文要讲的#!/bin/sh与#!/bin/bash. 本文参考:https: ...
- Linux - #!/bin/bash 和 #!/usr/bin/env bash 的区别
起因 为什么会想到写 #!/bin/bash 和 #!/usr/bin/env bash 的区别呢?还要从一次装插件的过程说起. 由于刚开始接触 Shell Script 不久,对一些语法用法等还不是 ...
- Shell编程之Csh和Bash的经验总结
文章目录 前言 1. 变量和环境变量设置 1. csh 2. bash 2. if语句 1. csh 2. bash 3. while循环 1. csh 2. bash 4. 数组 1. csh 2. ...
- zsh和bash的区别
看了一些资料,总结出来一句话:zsh完美兼容bash,并且有比bash更强大的功能,用起来也比bash更优雅. 参考1:Linux服务器上zsh和bash的区别 参考2:使用 zsh 的九个理由 参考 ...
- 查看终端是csh还是bash和更改shell设置
1.判断终端是csh还是bash: 终端命令:env 直接执行:echo $SHELL 可以直接看出当前使用的shell 2.更改shell设置: 终端命令:chsh -s /bin/bash 执行完 ...
- 几种常见的Shell:sh、bash、tcsh、csh、ash的区别
@Author : Spinach | GHB @Link : http://blog.csdn.net/bocai8058 文章目录 概念 sh csh tcsh ash bash 查看 Shell ...
- #!/bin/sh与#!/bin/bash的区别
Linux 中的 shell 有很多类型,其中最常用的几种是: Bourne shell (sh).C shell (csh) 和 Korn shell (ksh), 各有优缺点.Bourne she ...
- csh和bash的语法对比
一般来说,能用bash 语言编程就不用csh编程,因为bash语言的使用体验更好,但是某些情况的terminal窗口就是csh语言,因而,用csh语言会更适合.下面将bash和csh,做一些对比,方便 ...
- ./和bash的区别
直接运行./a.sh,首先你会查找脚本第一行是否指定了解释器, 如果没指定,那么就用当前系统默认的shell是sh. sh是bash的"子集" 什么场合这两种必须区分开来呢? 例如 ...
最新文章
- 解释型语言与编译型的必须知识点
- vue代码转换成小程序
- 3.3 目标检测-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- http接口和webservice接口的区别
- PAT (Basic Level) 1039 到底买不买(模拟)
- 日常生活收缩毛孔几个小妙招 - 健康程序员,至尚生活!
- 智能机器人建房子后房价走势_明后年日照房价走势如何?究竟是“上涨”还是下降...
- Greendao bean序列化出现的 问题!
- 道指mt4代码_剑指offer算法题052:正则表达式匹配
- Matlab中的logspace函数,matlab之logspace函数
- SpringBoot是什么?
- 为了拿Ph.D而做出的诺贝尔奖
- win10 最新版1803 1809打不开xps文件找不到xps查看器的解决办法
- 珍藏版创业思维导图,帮你成功创业!
- ERROR 1820 (HY000): You must reset your password using ALTER USER statement
- CRM:网站证书过期怎么办
- 嫁给年薪百万的程序员,结婚 6 年后的我竟然还是处女
- HP惠普笔记本电脑暗影精灵5 OMEN by HP 15-dh0153tx原装出厂Win10系统恢复原厂OEM系统
- 电脑配置ip--host修改ip地址然后刷新操作-win10
- 多线程基础:两种实现方式