繁体   English   中英

如何在shell中执行没有.sh扩展名的文件

[英]How to execute a file without .sh extension in shell

我想在 bash 中执行一个没有 .sh 扩展名的文件。

示例:我有可以直接执行的文件“abc.sh”(因为我添加了 #!/bin/bash 作为第一行)但我希望文件名只是“abc”

如果该文件已经可以作为abc.sh ,那么您需要做的就是

mv abc.sh abc

(假设您位于文件所在的目录中)

在 Linux 或 Unix shell 中,文件扩展名不影响它是否会执行。

在 Linux 中,您也可以使用./filename运行脚本。 你需要执行权限:

chmod 755 filename

但是你仍然需要“Shebang”:

#!/bin/bash

这里我得到了这个:

如果您没有将脚本目录放在 PATH 中,并且 . (当前目录)也不在 PATH 中,您可以像这样激活脚本:

./script_name.sh

脚本也可以由给定的 shell 显式执行,但通常只有在我们想要获得特殊行为时才这样做,例如检查脚本是否与另一个 shell 一起工作或打印跟踪以进行调试:

rbash 脚本名称.sh

sh脚本名称.sh

bash -x 脚本名称.sh

文件的权限是什么? 要通过执行./abc.sh之类的./abc.sh使其可执行,它需要具有 EXECUTABLE 权限。

你总是可以做bash abc.sh

Linux 权限概述

Linux 中的文件名在执行能力方面没有任何意义,您可以调用文件myfile.something.something并且它仍然可以执行。 您可以将其命名为abc但它必须具有用户、组、其他的EXECUTABLE权限。

要添加该权限,您可以执行chmod +x <filename>但您应该查看上面的链接以获得更好的理解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM