bash和sh和./的区别

bash和sh和./的区别

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

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
相关推荐
longzhizhui9261 天前
Ubuntu 全版本 CVE-2026-98432 内核安全升级操作手册
ubuntu·网络安全·云计算·bash
行走的陀螺仪3 天前
Claude Code 从入门到实战(二):Bash工具、Plan模式与后台任务
开发语言·bash
SEO_juper7 天前
Bash 交叉验证 robots.txt 和 sitemap:两个文件自相矛盾,页面永远收录不了
开发语言·python·node.js·json·bash
无足鸟ICT7 天前
【RHCA+】type命令(判断命令类型)
linux·ssh·bash
SEO_juper9 天前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
云计算练习生9 天前
什么是 Bash?Linux 默认 Shell 的核心功能
linux·操作系统·bash·shell·命令解释器
qetfw11 天前
Bash 函数与流程控制:read、if、for、case 验证
linux·前端·javascript·bash
qetfw12 天前
Bash 基础:脚本执行、引号与命令替换验证
linux·开发语言·chrome·bash
qetfw13 天前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
ZYH_060113 天前
rhcsa课程复习题
服务器·bash