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
相关推荐
顾安r8 小时前
10.25 脚本 整理2024全年 GITHUB每周热门项目
linux·c语言·python·github·bash
百步送剑11 小时前
在 Ubuntu 环境下 sh 脚本运行因为 Bash 改用 Dash 语法报错问题
ubuntu·bash·dash
Hali_Botebie1 天前
服务器上用Slurm 管理训练bash 脚本任务
运维·服务器·bash
潇I洒1 天前
Linux写sh开机启动脚本-bash报错的两种解决方法
java·linux·bash
Hali_Botebie1 天前
服务器上用Slurm 管理训练bash 脚本任务,申明使用GPU
服务器·chrome·bash
gfdgd xi1 天前
deepin 终端,但是版本是 deepin 15 的
linux·python·架构·ssh·bash·shell·deepin
我爱钱因此会努力2 天前
shell实战-跳板机和测试主机是否在线
服务器·tcp/ip·bash
稚辉君.MCA_P8_Java3 天前
Bash 括号:()、{}、[]、$()、$(() )、${}、[[]] 到底有什么区别?
开发语言·jvm·后端·容器·bash
Code-X03 天前
Bash 与 Source:命令执行的核心差异解析
开发语言·bash·1024程序员节
馨谙4 天前
Bash Shell 脚本编程入门详解
linux·bash