【Linux】执行脚本的两种方法,sh xx.sh和直接./xx.sh的区别

发布时间:2024年01月11日

背景:

我有个test.sh在/home/目录里

1. 使用 sh /home/test.sh

这种方式是显式地使用 sh 命令(Shell)来运行脚本。
这意味着脚本将在 sh 环境中执行,不论脚本第一行的 shebang (#!) 指定的是什么。
如果脚本是为 bash(Bourne Again SHell)或其他 shell 编写的,使用 sh 来执行可能会因为不支持某些特性而导致问题。
在某些系统中,sh 可能是 bash 的符号链接,但它通常会以一种兼容模式运行,可能不支持某些 bash 特有的特性。

2. 使用 /home/test.sh

在这种方式中,直接运行脚本文件本身。
这将根据脚本第一行的 shebang 指定的解释器来执行。例如,如果脚本以 #!/bin/bash 开头,它将使用 bash 来执行。
这种方式确保脚本在预期的 shell 环境中执行,使用了正确的解释器。
为了使用这种方式,脚本必须具有执行权限(例如,通过运行 chmod +x /home/test.sh 来设置)。

总结

如果确切知道脚本是为哪个 shell 编写的,并且希望在该特定 shell 中运行,则直接运行 /home/test.sh 是更好的选择。如果只是想确保脚本在任何标准 shell 中运行,使用 sh /home/test.sh 也是可行的.

文章来源:https://blog.csdn.net/gongfpp/article/details/135522604
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。