Bre*_*els 7 executable shell-script shebang
假设我有一个文件hello:
#!/bin/sh
echo "Hello World!"
Run Code Online (Sandbox Code Playgroud)
如果在该文件上设置了可执行位,我可以通过在提示中输入其路径来执行它:
$ ./hello
Hello World!
Run Code Online (Sandbox Code Playgroud)
是否有更明确的等价于上述内容?类似于:
$ execute hello
Run Code Online (Sandbox Code Playgroud)
我知道我可以将hello作为参数传递给/bin/sh,但我正在寻找一种解决方案,该解决方案可以自动使用 shebang 行中指定的解释器
我的用例是执行没有设置可执行标志的脚本文件。这些文件存储在 git 存储库中,因此我想避免设置它们的可执行标志或必须先将它们复制到另一个位置。
pLu*_*umo 18
您可以使用perl:
perl hello
Run Code Online (Sandbox Code Playgroud)
从perl文档:
如果#! 行不包含单词“perl”和单词“indir”,程序以#! 代替 Perl 解释器执行。这有点奇怪,但它可以帮助那些不执行 #! 的机器上的人,因为他们可以告诉程序他们的 SHELL 是 /usr/bin/perl,然后 Perl 会将程序分派给正确的解释器。
(通过)