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
相关推荐
vortex53 天前
探索 Shell:选择适合你的命令行利器 bash, zsh, fish, dash, sh...
linux·开发语言·bash·shell·dash
背太阳的牧羊人5 天前
sudo docker exec -it backend bash 以交互方式(interactive)进入正在运行的 Docker 容器的命令行环境
docker·容器·bash
无聊的小坏坏6 天前
环境变量深度解析:从配置到内核的全链路指南
linux·bash
Chuncheng's blog6 天前
如何基于Mihomo Party http端口配置git与bash命令行代理
git·http·bash
开挖掘机上班8 天前
Bash shell四则运算
linux·开发语言·bash·shell
无聊的小坏坏9 天前
Linux 权限管理入门:从基础到实践
linux·ubuntu·bash
无影无踪的青蛙9 天前
[Windows]在Win上安装bash和zsh - 一个脚本搞定
bash
诚丞成10 天前
苍茫命令行:linux模拟实现,书写微型bash
linux·chrome·bash
困惑阿三13 天前
解决 iTerm2 中 nvm 不生效的问题(Mac 环境)
开发语言·前端·macos·bash
Cacciatore->14 天前
Zsh/Bash Conda设置延迟启动,启动速度优化
conda·bash·zsh