我有一个shell脚本,我想在不使用“sh”或“bash”命令的情况下运行。例如:

而不是:sh script.sh

我想使用:script.sh

我该怎么做呢?

P.S. (i)我不太使用shell脚本,我试着阅读关于别名的内容,但我不知道如何使用它们。

(ii)我还读了关于将脚本链接到PATH变量中的另一个文件。我正在使用我的大学服务器,我没有权限在这些位置创建文件。


当前回答

您必须为程序启用可执行位。

chmod +x script.sh

然后使用。/script.sh

您可以将该文件夹添加到.bashrc文件(位于您的主目录)的PATH中。 将这一行添加到文件的末尾:

export PATH=$PATH:/your/folder/here

其他回答

只需确保它是可执行的,使用chmod +x。默认情况下,当前目录不在您的PATH上,因此您需要以./script.sh的形式执行它,或者以其他方式引用它。或者,如果您确实只需要script.sh,则需要将其添加到PATH中。(您可能没有权限修改系统路径,但几乎可以修改您自己当前环境的path。)这还假定脚本以#!/bin/sh开头。

你也可以使用别名,它与shell脚本无关,只是与shell相关,简单如下:

alias script.sh='sh script.sh'

这将允许您只使用script.sh(字面上-这将不适用于任何其他*.sh文件)而不是sh script.sh。

您必须为程序启用可执行位。

chmod +x script.sh

然后使用。/script.sh

您可以将该文件夹添加到.bashrc文件(位于您的主目录)的PATH中。 将这一行添加到文件的末尾:

export PATH=$PATH:/your/folder/here

通过使用文件的属性使脚本文件成为可执行文件 在~/.bashrc中为可执行文件创建别名。别名<别名> = <完整脚本文件路径>' 刷新用户会话以应用它。源~ / . bashrc

在文件顶部添加一个“shebang”:

#!/bin/bash

并使您的文件可执行(chmod +x script.sh)。

最后,修改路径以添加脚本所在的目录:

export PATH=$PATH:/appropriate/directory

(通常,你需要$HOME/bin来存储你自己的脚本)

添加。(当前目录)到您的PATH变量。 你可以通过编辑你的.profile文件来做到这一点。 在.profile文件中放入以下一行 = $ PATH:。 只需确保在脚本的开头添加Shebang (#!/bin/bash)行,并使脚本可执行(使用chmod +x <文件名>)。