
我有以下關於 UNIX 的問題:
當頂線消失時還需要什麼
#!\bin\awk -f
to make it run as a command?
我認為無論腳本的名稱是什麼,都需要使用 chmod 授予其運行權限。
答案1
第一行帶有“#!”將是要執行的程式的完整路徑名。
Linux 中的路徑名稱在目錄之間有正斜線。
IE:
#!/bin/awk -f
或者
#!/bin/bash
或者
#!/usr/bin/perl
第一個腳本將使用運行腳本程序awk
,第二個使用bash
,第三個使用perl
。
您還必須使用以下命令使文件可執行:
$ chmod +x myscript.sh
答案2
#!\bin\awk -f
是一個有效的 shebang 行,但它不是一個有用的行。它聲明該檔案必須由\bin\awk
當前目錄中呼叫的程式解釋。因此,從字面上回答這個問題,有兩種方法可以將該檔案作為命令運行:
\bin\awk
建立一個在目前目錄中呼叫的文件,可能是透過複製或連結某個版本的 awk.此外,該腳本需要可執行。ln -s /bin/awk '\bin\awk' chmod +x /path/to/script /path/to/script
顯式呼叫 awk。
awk -f /path/to/script
如果允許修改文件,則應編輯 shebang 行以使其有意義:用斜線替換反斜線。並使文件可執行(這無疑是預期的答案,但僅僅這樣做並不是正確的答案)。