Linux下的四大Shell:CShell、TCShell、Bash与KShell对比
需积分: 50 26 浏览量
更新于2024-09-13
收藏 206KB PDF 举报
本文将详细介绍Linux环境下四种常见的Shell脚本——CShell、TCShell、Bshell以及Bashshell之间的区别,包括它们的启动声明、注释方式、通配符处理、字符串输出、局部和全局变量的设定以及读取用户输入的方法。
1. CShell (csh) 和 TCShell (tcsh)
- 启动声明:`#!/bin/csh` 或 `#!/bin/tcsh`,其中TCShell是CShell的一个增强版本,具有命令补全和历史记录等功能。
- 注释:以`#`开头的行被视为注释。
- 通配符:CShell和TCShell中,通配符如星号(*)和问号(?)需要使用反斜杠(\)转义或者引号括起来。
- 显示输出:使用`echo`命令,但字符串通常需要被引号包围。
- 局部变量:设置变量使用`set variable_name=value`,赋值时可以省略等号。
- 全局变量:通过`setenv VARIABLE_NAME value`来设置环境变量。
- 提取变量值:使用`echo $variable_name`。
- 读取用户输入:`set name=$<`。
2. Bshell (sh)
- 启动声明:`#!/bin/sh`,它是Bourne Shell,是其他许多shell的基础。
- 注释:同样以`#`开头的行表示注释。
- 通配符:Bshell中,通配符需要被引号包围才能避免立即扩展。
- 显示输出:`echo`命令用于输出,字符串需被引号包围。
- 局部变量:设置变量使用`name=value`,等号不可省略。
- 全局变量:通过`export VARIABLE_NAME=value`来设置环境变量。
- 提取变量值:同样使用`echo $variable_name`。
- 读取用户输入:不支持直接读取用户输入,一般需要通过`read`命令实现。
3. Kshell (ksh)
- 启动声明:`#!/bin/ksh`,Korn Shell在Bshell基础上增加了一些功能,如数组和更灵活的变量管理。
- 注释、通配符、显示输出与Bshell类似。
- 局部变量:使用`variable_name=value`,等号不可省略,也可以使用`typeset variable_name=value`来指定变量类型。
- 全局变量:使用`export VARIABLE_NAME=value`。
- 提取变量值:`echo $variable_name`。
- 读取用户输入:可以使用`read`命令。
4. Bashshell
- 启动声明:`#!/bin/bash`,Bash是Bshell的增强版,广泛使用于现代Linux系统。
- 注释、通配符、显示输出与Bshell基本相同。
- 局部变量:使用`variable_name=value`,等号不可省略,还可以使用`declare variable_name=value`来指定变量类型。
- 全局变量:使用`export VARIABLE_NAME=value`。
- 提取变量值:`echo $variable_name`。
- 读取用户输入:通过`read`命令读取用户输入。
总结来说,这四种Shell在语法上存在一些差异,但大部分基本概念和操作是相似的。选择哪种Shell主要取决于个人习惯和特定任务的需求。例如,Bash因其广泛支持和强大的功能而成为首选,而CShell和TCShell则因其命令补全特性受到一些用户的青睐。Kshell则在某些高级特性上提供了更多选择。理解这些差异有助于编写更加高效和兼容的脚本。
1973 浏览量
1528 浏览量
743 浏览量
2327 浏览量
208 浏览量
116 浏览量
2023-05-28 上传
562 浏览量
![](https://profile-avatar.csdnimg.cn/86e23dfa08a24a31b85f898ed72f0dcb_schnecke.jpg!1)
Schnecke
- 粉丝: 6
最新资源
- Servlet核心技术与实践:从基础到高级
- Servlet核心技术详解:从基础到过滤器与监听器
- 操作系统实验:进程调度与优先数算法
- 《Div+CSS布局大全》教程整理
- 创建客户反馈表单的步骤
- Java容器深度解析:Array、List、Set与Map
- JAVA字符集与编码转换详解
- 华为硬件工程师的手册概览
- ASP.NET 2.0 实现动态广告管理与随机显示
- 使用Dreamweaver创建网页过渡动画效果
- 创建ASP登录系统:步骤详解
- ASP论坛搭建:资料转义与版主权限管理
- C#新手必读:新版设计模式详解与实例
- 提升网站论坛制作:技术优化与点击计数
- AVR微处理器ATmega32L/32:高级特性和功能详解
- C++实现经典矩阵:螺旋及蛇形排列