我有以下关于 UNIX 的问题:
当顶线消失时还需要什么
Run Code Online (Sandbox Code Playgroud)#!\bin\awk -f
Run Code Online (Sandbox Code Playgroud)to make it run as a command?
我在想,无论脚本的名称是什么,都需要使用 chmod 授予权限才能运行。
第一行带有“#!” 将是要执行的程序的完整路径名。
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)
#!\bin\awk -f
是一个有效的 shebang 行,但它不是一个有用的。它声明文件必须由\bin\awk
当前目录中调用的程序解释。因此,从字面上回答这个问题,有两种方法可以将该文件作为命令运行:
创建一个\bin\awk
在当前目录中调用的文件,大概是通过复制或链接某个版本的 awk。此外,脚本需要可执行。
ln -s /bin/awk '\bin\awk'
chmod +x /path/to/script
/path/to/script
Run Code Online (Sandbox Code Playgroud)显式调用 awk。
awk -f /path/to/script
Run Code Online (Sandbox Code Playgroud)如果允许修改文件,则应编辑 shebang 行以使其有意义:用斜杠替换反斜杠。并使文件可执行(这无疑是预期的答案,但仅仅这样做不会是正确的答案)。