linux:bash和sh区别
简介
Shell 中文意思贝壳,寓意类似内核的壳。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 脚本(shell script)是一种为 shell 编写的脚本程序。常说的shell通常都是指 shell 脚本,但shell和shell script是两个不同的概念。通常说“shell编程”都是指 shell 脚本编程,不是指开发 shell 自身。
sh(Bourne Shell)是一个早期的重要shell,1978年由史蒂夫·伯恩编写,并同Version 7 Unix一起发布。
bash(Bourne-Again Shell)是一个为GNU计划编写的Unix shell。1987年由布莱恩·福克斯创造。主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,是各种Linux发行版标准配置的Shell,在Linux系统上/bin/sh往往是指向/bin/bash的符号链接。
脚本开头#!含义
#!是一个特殊标记,说明这是一个可执行的脚本。除了第一行,其他以#开头的都不再生效,为注释。
#!后面是脚本的解释器程序路径。这个程序可以是shell,程序语言或者其他通用程序,常用的是bash、sh。
#!/bin/bash
#!/bin/sh
区别
sh 遵循POSIX规范:“当某行代码出错时,不继续往下解释”。bash 就算出错,也会继续向下执行。
sh 跟bash的区别,实际上是bash有没开启POSIX模式的区别。
简单说,sh是bash的一种特殊的模式,sh就是开启了POSIX标准的bash, /bin/sh 相当于 /bin/bash --posix。
在Linux系统上/bin/sh往往是指向/bin/bash的符号链接
ln -s /bin/bash /bin/sh
参考链接:https://blog.csdn.net/lingeio/article/details/96135086
linux基础:shell中的sh与bash区别与常用命令
相关文章
- 网银 Linux:从传统到新潮的转变(网银linux)
- 是强大的命令行Linux下强大的bash命令行支持(linux中bash)
- 端口如何开启Linux下3306端口(linux开启3306)
- 的区别比较macOS X与Linux的不同(osx与linux)
- Linux内核之火:防护服务(linux内核防火墙)
- 探索Linux驱动API:开启发展之路(linux驱动api)
- 嵌入式和Linux:不同的操作体验(嵌入式和linux的区别)
- 进阶学习:如何查看Linux线程栈(查看linux线程栈)
- Linux中符号的含义探究(linux是什么意思)
- 、1>>和0>>的区别Linux 中2>>、1>>和0>>的区别(linux中2)
- Linux自启动设置指南(linux设置自启动)
- Linux下强大的Bash Shell之旅(linux启动bash)
- Linux当前Shell:从 Bash 到 Zsh(linux当前shell)
- Linux下如何关闭防火墙(关闭linux的防火墙)
- 如何关闭Linux系统的防火墙(关闭linux的防火墙)
- 的区别Linux 中 和 . 的区别(linux中和.)
- Mac和Linux系统的异同比较(mac和linux区别)
- 深入剖析Linux下Bash命令行:解密其强大功能及使用技巧(Linux下bash)
- Linux账号忘记密码怎么办?快速解锁!(linux账号解锁)
- Linux流量监控:十个实用的查看流量命令(linux查看流量命令)
- Linux路径:绝对路径与相对路径差异(linux绝对路径和相对路径的区别)
- Windows和Linux:异曲同工的计算机操作系统(windows和linux的区别)
- Linux下搭建PHP开发环境的一步步操作(linux配置php环境)