首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >./script.sh和sh script.sh之间的区别

./script.sh和sh script.sh之间的区别
EN

Stack Overflow用户
提问于 2022-03-19 15:08:18
回答 1查看 88关注 0票数 -1

我用耳聋权限编写脚本-rw-r--r- 1。如果我运行这个sh script.sh,它就会被执行,而用./script执行命令时,它会抛出拒绝的权限。

这两个命令之间有什么区别?为什么不需要更改“sh script.sh”的权限?

根@ip safe# sh test.sh

测试

root@ip safe# ./test.sh

-bash:./test.sh:权限被拒绝

EN

回答 1

Stack Overflow用户

发布于 2022-03-19 15:13:27

这两个命令之间有什么区别?

sh script.sh告诉sh程序运行脚本。

./script.sh说要使用脚本定义的程序运行脚本(如果不是hashbang,则在默认的shell中)。

请注意,由于以下几个原因,您很可能会得到完全不同的结果,这取决于脚本是否有散列:

  • 即使在shbash时,当它作为sh被调用时,它在有限的兼容性模式下运行(感谢Charles Duffy在关于这个问题的评论中给出了pointing that out )。

  • 脚本的运行方式可能与shell完全不同。它可能从#!/bin/node开始,并包含要在Node.js中运行的JavaScript代码。在这种情况下,./script.sh将工作,但sh script.sh将失败,因为sh将把脚本视为shell脚本。

为什么不需要更改“sh script.sh”的权限?

因为在这种情况下,您要执行的是sh程序,它被标记为可执行文件(是sh,然后读取并执行脚本中的命令,但是脚本不必是可执行的)。当您执行./script.sh时,您将其视为可执行文件,因此需要设置可执行权限位。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71539327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档