Shebang

這是一條有效的shebang線嗎?

  • September 15, 2016

我有以下關於 UNIX 的問題:

當頂線出現時還需要什麼

> > > > #!\bin\awk -f > > > >

  to make it run as a command?

我在想無論腳本的名稱是什麼,都需要使用 chmod 獲得許可才能使其執行。

第一行帶有“#!” 將是要執行的程序的完整路徑名。

Linux 中的路徑名在目錄之間使用正斜杠。

IE:

#!/bin/awk -f

或者

#!/bin/bash

或者

#!/usr/bin/perl

第一個腳本將執行腳本程序 using awk,第二個 using bash,第三個 using perl

您還必須使用以下命令使文件可執行:

$ chmod +x myscript.sh

#!\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 行以使其有意義:用斜杠替換反斜杠。並使文件可執行(這無疑是預期的答案,但僅僅這樣做並不是正確的答案)。

引用自:https://unix.stackexchange.com/questions/159449