Linux SHELL中sh和bash的区别

时间:2022-08-30 15:36:36

什么是SHELL?
  shell的中文意思就是贝壳,其实比较类似于我们内核的壳。简而言之就是只要能够操作应用程序的接口都能够称为SHELL。狭义的shell指的是命令行方面的软件,广义的SHELL则包括图形界面。

SHELL的版本
  在鸟哥的私房菜的一书中,介绍了UNIX的版本以及众多的SHELL版本。
  早在UNIX年代,发展者众多,所以由于shell依据发展者的不同就有许多版本,比如sh,C SHell,K SHell,还有TCSH等,每一种Shell都各有特点。当然也有我们的bash,bash这个shell是Bourne Shell的增强版本,也是基于GNU的架构下发展出来的。

sh和bash的区别
  因为bash是sh的增强版本,在我们平常实地操作的时候如果sh这个命令不灵了我们应当使用bash。
  举个例子来说如果我们使用数字的加减
  有几种不同的版本,

#! /bin/bash
no1=
no2=
let no1++
let result=no1+no2
echo $result
result=$[no1+no2]
echo $result
result=$[$no1+]
echo $result
result=$((no1+))
echo $result 如果使用sh则输出
test3.sh: : test3.sh: let: not found
test3.sh: : test3.sh: let: not found
$[no1+no2]
$[+]

  可以看见sh不仅不支持多种命令,而且很多细小的差别。 
  所以其实我们应该更多的使用bash,也就是./xx.sh,前提是修改权限,chmod a+x xx.sh。

Linux SHELL中sh和bash的区别的更多相关文章

  1. linux shell中的 #!/bin/bash

    #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径. bash只是shell的一种,还有很多其它shell,如:sh ...

  2. Linux—shell中$(( ))、$( )、``与${ }的区别

    命令替换 在bash中,$( )与` `(反引号)都是用来作命令替换的.命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行. exp 1 [ ...

  3. linux shell 中 printf 与 echo的区别

         echo echo是非常常用的shell命令.参数如下: -e:打开反斜杠字符backslash-escaped的解析,即对/n,/t等字符进行解析,而不视之为两个字符 -E:关闭反斜杠字符 ...

  4. shell中sh, exec, source, fork, ./的区别

    shell中sh, exec, source, fork, ./的区别 1,sh sh test.sh ​ sh是通过创建子进程(subshell)去执行脚本,父进程无法使用子进程中的变量,而子进程对 ...

  5. sh和bash的区别

    在鸟哥的私房菜的一书中,介绍了UNIX的版本以及众多的SHELL版本. 早在UNIX年代,发展者众多,所以由于shell依据发展者的不同就有许多版本,比如sh,C SHell,K SHell,还有TC ...

  6. linux shell 中的位置变量

    对于linux shell 中的位置变量,我一直以来都是吐不出来又咽不下去,每次看到都不懂,不懂了就去百度google,看完了又忘,真是慢性咽炎啊.现在认真想想也是,其实自己一直以来都没有好好学习过, ...

  7. Linux shell中的一个问题 ${}带正则匹配的表达式

    目前在准备龙芯项目的PMON,在研究其编译过程的时候,看到一些make 语句,百思不得其解.后来在shell编程中看到一点资料,牵扯到Shell中的正则表达式.故记录下来,以备后来查阅. 问题: 在某 ...

  8. linux shell 中的sleep命令

    开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...

  9. Linux Shell中有三种引号的用法

    Linux Shell中有三种引号,分别为双引号(" ").单引号(' ')以及反引号(` `). 其中双引号对字符串中出现的$.''.`和\进行替换:单引号不进行替换,将字符串中 ...

随机推荐

  1. Mysql存储过程调用

    mysql存储过程实例教程 发布时间:2014-04-09编辑:JB01 这篇文章主要介绍了mysql存储过程的使用方法,mysql存储过程实例教程,有需要的朋友参考下.   1.1create  p ...

  2. 对 web.config 节点信息进行加密

    记录一下,免得以后再网上找 项目中,数据库访问链接字符串配置在web.config中,明文的,应客户需求需改成密文,so,需要加密. 一开始想的是需要重写configuration什么什么的,最后发现 ...

  3. 【BZOJ-4591】超能粒子炮·改 数论 + 组合数 + Lucas定理

    4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 95  Solved: 33[Submit][Statu ...

  4. window 安装Mysql 5.6 发生系统错误 1067

    问题: #安装MySQL服务:mysqld -install MySQL5 D:\Program Files\mysql_5.6.24_winx64\bin>mysqld -install My ...

  5. itunes一进store就提示已停止工作该怎么解决

    改兼容,换盘重装什么的都试过了没用,可以听歌更新软件更改账号,但是就是进不了store,每次都是这个进度就卡死了. 问题事件名称: APPCRASH 应用程序名: iTunes.exe 应用程序版本: ...

  6. OpenCV——PS 图层混合算法 (四)

    具体的算法原理可以参考 PS图层混合算法之四(亮光, 点光, 线性光, 实色混合) // PS_Algorithm.h #ifndef PS_ALGORITHM_H_INCLUDED #define ...

  7. shell脚本简介

    什么是shell? shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户.这种对话方式可以是交互的 ...

  8. Linux 解压/压缩xxx.zip格式(unZip Zip的安装和使用)

    Linux系统没有自带的压缩解压工具:需要我们自己安装:当压缩包为.zip格式时,需要安装zip包 1.apt-get安装: apt-get install zip 2.yum安装: yum inst ...

  9. CSS3-字体渐变色

    示例:Mauger`s Blog <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"& ...

  10. &lt&semi;codis&gt&semi;&lt&semi;jodis&gt&semi;

    Overview For codis and jodis. Codis TBD... Jodis Java client for codis. Jodis is a java client for c ...