这是一条有效的shebang线吗?

Fer*_*nez 0 shebang

我有以下关于 UNIX 的问题:

当顶线消失时还需要什么

#!\bin\awk -f
Run Code Online (Sandbox Code Playgroud)
  to make it run as a command?
Run Code Online (Sandbox Code Playgroud)

我在想,无论脚本的名称是什么,都需要使用 chmod 授予权限才能运行。

L. *_*mes 6

第一行带有“#!” 将是要执行的程序的完整路径名。

Linux 中的路径名在目录之间有正斜杠。

IE:

#!/bin/awk -f
Run Code Online (Sandbox Code Playgroud)

或者

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)

或者

#!/usr/bin/perl
Run Code Online (Sandbox Code Playgroud)

第一个脚本将运行脚本程序 using awk,第二个 using bash,第三个 using perl

您还必须使用以下命令使文件可执行:

$ chmod +x myscript.sh
Run Code Online (Sandbox Code Playgroud)


Gil*_*il' 5

#!\bin\awk -f是一个有效的 shebang 行,但它不是一个有用的。它声明文件必须由\bin\awk当前目录中调用的程序解释。因此,从字面上回答这个问题,有两种方法可以将该文件作为命令运行:

如果允许修改文件,则应编辑 shebang 行以使其有意义:用斜杠替换反斜杠。并使文件可执行(这无疑是预期的答案,但仅仅这样做不会是正确的答案)。