【答疑释惑】Linux下面tcsh和bash的区别

在我们的公众号里面遇到有人问tcsh和bash的区别:

正如小编回复的那样,这个问题其实不用太去纠结,拿到一个常用的去学习就行了。不过这里还是大致说下这两个东西。

首先我们要知道什么是shell。shell提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

而tcsh和bash只是不同的shell而已,他们的关系就像c++与java一样,都是编程语言。有很大的共同性,但有很多语法不同而已。

具体到具体的内容,列举下面几处差别:

  1. 在Tcsh中为变量赋值时,需要使用set命令。例如set NAME="Jhon"。
  2. 在Tcsh中数组的下标是从1开始的,而Bash中则是从0开始的。
  3. Bash中设置全局变量(也称环境变量),使用的命令是export,而Tcsh则使用setenv。
  4. 获取脚本参数时,Bash中一般使用$1、$2、$3等位置变量,而Tcsh则使用$argv[1]、$argv[2]、$argv[3]等读取参数。
  5. 在Bash中获取信号的命令是trap,而Tcsh中则使用onintr。

以上只是一部分差别而已,Tcsh与Bash还存在许多区别,例如Tcsh中可以使用goto语句执行无条件跳转,但Bash不支持等,此处不再一一介绍,感兴趣的读者可以通过阅读相关文档了解具体内容。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-09-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python专栏

打造专属于你自己的vim

转载自:https://segmentfault.com/a/1190000011466454  作者:SF / 枫上雾棋

1273
来自专栏QQ音乐技术团队的专栏

Android DataBinding 数据绑定

引子 几年前,数据绑定在便已在前端界风生水起,Angular.js、React.js、vue.js等热门前端框架都具备这种能力。 数据绑定简单来说,就是通过某种...

4367
来自专栏华章科技

这件神器,每个 Python 学习者都值得一试

Jupyter Notebook 是一款 Web 应用,它能让用户将上面说的各种窗口里的东西,全部组合到一个可读性好,易于共享,且对新手友好的文档中。这个文档里...

882
来自专栏超然的博客

高效开发之SASS篇

作为通往前端大神之路的普通的一只学鸟,最近接触了一样稍微高逼格一点的神器,特与大家分享~

831
来自专栏程序员宝库

10 分钟理解 JS 引擎的执行机制

作者: ziwei3749 原文:https://segmentfault.com/a/1190000012806637 首先,请牢记2点: JS是单线程语言 ...

4069
来自专栏Seebug漏洞平台

34c3 部分Web Writeup

34c3应该算是2017年年末的最后一个惊喜了,比赛题目虽然有非预期导致难度降了很多,但是从CTF中能学到什么才是最重要的,其中Web有3个XSS题目,思路非常...

45810
来自专栏偏前端工程师的驿站

CMD魔法堂:支持显示UTF8编码的中文

一、前言                                     在Unbuntu中用sqlite3-command-line操作sqlite3...

21610
来自专栏测试开发架构之路

C语言之Sleep函数

Sleep函数: 功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   注意:   在VC中使用带上...

5958
来自专栏IMWeb前端团队

Qjs直出实现过程

直出要做什么 在服务端为Qjs填充默认的值,例如 输入: <div q-text="name"></div> {"name": "Qjs"} 直出: <div ...

2138
来自专栏阮一峰的网络日志

Bookmarklet编写指南

前一段日子,我写了两个Bookmarklet----"短网址生成"和"短网址还原"。 它们用起来很方便,除了我本人之外,其他朋友也在用。第一次发布Bookmar...

4709

扫码关注云+社区

领取腾讯云代金券