bash和sh和./的区别

bash和sh和./的区别

今天在执行一个脚本的时候,用的是sh script.sh,执行报错,使用bash script.sh执行时就能成功,才知道shbash是不一样的

sh

sh表示 Bourne Shell,是 Unix 系统上的一种基本的命令解释器。它也可以是其他 Shell 解释器的符号链接,如 Bash 或者其他类似的 Shell

但在某些系统上,sh 实际上可能是 bash 的符号链接,这个时候运行 sh script.sh 实际上会使用 Bash 来解释执行 script.sh 脚本

bash

bash是Bourne Again Shell 的缩写,是Bash shell的解释器。它是 Bourne Shell (sh) 的升级版本

可以在命令行中直接使用 bash 命令来启动一个交互式的 Bash shell,也可以通过 bash script.sh 这样的方式来执行一个 Bash 脚本

./

./在linux中表示当前目录。

在命令行中输入 ./script.sh 时,它告诉系统去当前目录找名为 script.sh 的文件并执行它

这种方法需要脚本具有执行权限,并且会使用脚本文件头部(#!)指定的解释器来执行脚本。如果没有指定解释器,将使用默认的shell解释器

这种文件需要添加可执行权限

复制代码
chmod +x script.sh
相关推荐
风向决定发型丶1 天前
Shell中的特殊变量
linux·运维·bash
tiana_2 天前
写了个零依赖的 Go 版本管理器,curl | bash 完事
开发语言·golang·bash
无足鸟ICT4 天前
【RHCA+】bash命令
linux·开发语言·bash
甄同学4 天前
第十七篇:Bash Executor命令执行器,安全运行Shell命令
开发语言·安全·bash
儒雅的名5 天前
GoF设计模式——策略模式
设计模式·bash·策略模式
hai3152475438 天前
九章空间几何对照直译法:通用芯片 / 定制专用芯片 编译适配规则
linux·汇编·bash
wok1578 天前
Git Bash 执行中文命令报错 127:MSYS 参数编码 bug 排查与修复
git·bug·bash
yoothey11 天前
报废审批流规则引擎设计——责任链模式完整实现
linux·开发语言·bash
vortex511 天前
Shell 命令执行知识体系全景解析
linux·运维·bash·shell·命令行
vortex511 天前
Shell 位置参数传递:从入门到“怀疑人生“
linux·bash·shell