linux中的shell及不同的shell种类的区别

1 Linux中的shell介绍

用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。

2 shell中的变量

在子 shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。 export命令将使系统在创建每一个新的子shell时定义这个变量的一个拷贝,但只对定义环境变量的shell中调用的子shell有效,对于其他独立的shell不可见。

3 不同shell的区别

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
而tcsh和bash只是不同的shell而已,他们的关系就像c++与java一样,都是编程语言。有很大的共同性,但有很多语法不同而已。
具体到具体的内容,列举下面几处差别:
在Tcsh中为变量赋值时,需要使用set命令。例如set NAME="Jhon"
在Tcsh中数组的下标是从1开始的,而Bash中则是从0开始的。
Bash

你可能感兴趣的:(linux中的shell及不同的shell种类的区别)