Linux中sh与bash的区别

Linux中sh与bash的区别

什么是Shell

在计算机科学中,Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

sh介绍

sh(Bourne Shell)是一个早期的重要shell,1978年由史蒂夫·伯恩编写,并同Version 7 Unix一起发布。

在一般的linux系统当中(如redhat,centos),使用sh调用执行脚本相当于打开了bash的POSIX标准模式(等效于bash的 --posix 参数)一般的,sh是bash的"子集"

bash介绍

bash(Bourne-Again Shell)是一个为GNU计划编写的Unix shell。1987年由布莱恩·福克斯创造。主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,是各种Linux发行版标准配置的Shell,在Linux系统上/bin/sh往往是指向/bin/bash的符号链接。

sh与bash的区别:

sh 遵循POSIX规范:"当某行代码出错时,不继续往下解释"。bash 就算出错,也会继续向下执行。

#! 是一个特殊标记,说明这是一个可执行的脚本。除了第一行,其他以#开头的都不再生效,为注释。

#! 后面是脚本的解释器程序路径。这个程序可以是shell,程序语言或者其他通用程序,常用的是bash、sh。

相关推荐
光路科技39 分钟前
光路科技将携工控四大产品亮相工博会,展示工业自动化新成果
运维·科技·自动化
csdn_aspnet44 分钟前
Linux Node.js 安装及环境配置详细教程
linux·node.js
PAQQ1 小时前
解决 ubuntu 重启串口号变化
linux·运维·ubuntu
dyxal2 小时前
linux系统安装wps
linux·运维·wps
大家的笔记本2 小时前
jetson orin super nano(arm linux系统)上读取大恒图像工业相机(型号MER-050-560U3C)教程
linux·arm开发·相机
九章云极AladdinEdu2 小时前
深度学习优化器进化史:从SGD到AdamW的原理与选择
linux·服务器·开发语言·网络·人工智能·深度学习·gpu算力
Xxtaoaooo3 小时前
Nginx 502 网关错误:upstream 超时配置的踩坑与优化
运维·nginx·负载均衡·502错误·upstream超时
青草地溪水旁3 小时前
Linux epoll 事件模型终极指南:深入解析 epoll_event 与事件类型
linux·epoll
..过云雨3 小时前
04.【Linux系统编程】基础开发工具2(makefile、进度条程序实现、版本控制器Git、调试器gdb/cgdb的使用)
linux·笔记·学习
zzzsde3 小时前
【Linux】初识Linux
linux·运维·服务器