当前位置: 首页 > news >正文

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区别与常用命令

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • AI模型设计:完美demo实现C调用python的tensorflow模型pb(附件源码python与C/C++动态库互相调用)
  • cmake命令set、option、find_package、target_link_libraries、add_executable使用方法
  • 继续提bug
  • AI模型设计:C语言实现socket发送与接受深度学习文本数据集
  • 链接管理部分的bug已经修正
  • 终端一行命令更换ubuntu国内镜像源
  • 预计近两天将新增功能
  • 完美解决W: 无法下载 /shiftkey/desktop/any/dists/any/InRelease
  • 动态获取当前屏幕中光标所在位置的颜色
  • python使用技巧(二十五):*args, **kwargs生成可变列表与字典
  • 爱因斯坦在普朗克生日会上的演讲:探索的动机
  • python使用技巧(二十六):批量复制图片或文件到另一文件目录
  • 完美解决ubuntu系统的中文输入法无法写入VS Code的问题
  • 谁比谁活得更长 杜丽
  • AI模型设计:yolov1+darknet+yolov2,3,4,5,X全系列资料汇总[源码仓库]标星收藏
  • es6--symbol
  • JavaScript HTML DOM
  • js中的正则表达式入门
  • mysql 数据库四种事务隔离级别
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • uni-app项目数字滚动
  • vue-router 实现分析
  • 产品三维模型在线预览
  • 彻底搞懂浏览器Event-loop
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 好的网址,关于.net 4.0 ,vs 2010
  • 基于HAProxy的高性能缓存服务器nuster
  • 聊聊hikari连接池的leakDetectionThreshold
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 全栈开发——Linux
  • 如何设计一个比特币钱包服务
  • 什么是Javascript函数节流?
  • 智能网联汽车信息安全
  • const的用法,特别是用在函数前面与后面的区别
  • # include “ “ 和 # include < >两者的区别
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • ###C语言程序设计-----C语言学习(6)#
  • #07【面试问题整理】嵌入式软件工程师
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (23)Linux的软硬连接
  • (WSI分类)WSI分类文献小综述 2024
  • (笔试题)分解质因式
  • (补充)IDEA项目结构
  • (七)Knockout 创建自定义绑定
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (转)Linux下编译安装log4cxx
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .apk文件,IIS不支持下载解决
  • .NET C# 操作Neo4j图数据库
  • .NET IoC 容器(三)Autofac
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET的微型Web框架 Nancy
  • .net快速开发框架源码分享
  • .net中生成excel后调整宽度