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
相关推荐
时光803.1 天前
快速搭建青龙面板Docker教程
windows·ubuntu·bash·httpx
无奈笑天下1 天前
银河麒麟V10虚拟机安装vmtools报错:/bin/bash解释器错误, 权限不够
linux·运维·服务器·开发语言·经验分享·bash
DevGu2 天前
Linux 子账户显示bash-4.25,不显示用户名
linux·运维·bash
花哥码天下2 天前
修复Bash脚本Here Document错误
开发语言·bash
秋邱2 天前
Java面向对象进阶实战:用工厂模式+策略模式优化支付系统
java·bash·策略模式
junlaii4 天前
Windows Claude Code Git Bash 依赖修复教程
windows·git·bash
Percep_gan4 天前
解决-bash: /usr/bin/yum: No such file or directory
开发语言·bash
gis分享者5 天前
Bash 中如何使用正则表达式进行文本处理?(中等)
正则表达式·bash·shell·文本·处理
可能是这样吧6 天前
向已有仓库上传,并单独建分支(使用 Git Bash)
git·bash
一个平凡而乐于分享的小比特6 天前
Linux/Unix系统主流脚本语言--Bash语言
linux·bash·脚本语言