Linux中bash、sh、./命令的区别

之前在centos7上面执行用pyinstaller打包的程序时发现用【bash xxx】无法运行。改用【./xxx】就可以运行。遂百度一波发现了自己之前理解的一个误区,特记录如下。

Linux存在多种解释器,以下是常用的几种(下方为原文):

bash:
这是Bash shell的解释器。当你使用bash script.sh运行脚本时,你是在告诉系统使用Bash解释器来执行脚本。这意味着脚本中的所有Bash特性都可以使用。


sh:
这是Bourne shell的解释器。当你使用sh script.sh运行脚本时,你是在告诉系统使用Bourne shell解释器来执行脚本。这可能会导致一些在Bash中可用但在Bourne shell中不可用的特性无法使用。


./:
这是在当前目录下运行脚本的方法。当你使用./script.sh运行脚本时,你是在告诉系统在当前目录下查找并执行脚本。这种方法需要脚本具有执行权限,并且会使用脚本文件头部的shebang(#!)指定的解释器来执行脚本。如果没有指定解释器,将使用默认的shell解释器。
————————————————
版权声明:本文为CSDN博主「小蜗牛冲鸭~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34761779/article/details/131998666

posted @ 2023-10-16 15:34  平行时空的旅者  阅读(303)  评论(0编辑  收藏  举报