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
相关推荐
缘友一世8 小时前
macOS .bash_profile配置文件优化记录
开发语言·macos·bash
醉颜凉1 天前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
HealthScience2 天前
怎么将bash(sh)的所有输出保存到log/txt中?
开发语言·bash
热心市民R先生3 天前
ros2 colcon build 构建后,install中的local_setup.bash 和setup.bash有什么区别
开发语言·机器人·bash
Robbie丨Yang3 天前
bash 脚本获取当前 git 所有本地分支
开发语言·git·bash
筑梦之路4 天前
直接用Bash发送HTTP请求 —— 筑梦之路
http·bash
Kika写代码5 天前
【已解决】【Hadoop】【./bin的使用】bash: ./bin/hdfs: 没有那个文件或目录
hadoop·hdfs·bash
DaphneOdera175 天前
问题解决实录 | bash 中 tmux 颜色显示不全
bash
Qlove957 天前
解决银河麒麟V10系统bash执行提示:无法执行:权限不够的问题
linux·bash
轻夏7 天前
WindowsTerminal中oh-my-posh样式的cmd、git-bash、cmder配置参数
开发语言·git·bash