R1-003 Linux上的Shebang符號——#!
Shebang這個符號通常在Unix系統的指令碼中第一行開頭中寫到,它指明瞭執行這個指令碼檔案的解釋程式。
1. 如果指令碼檔案中沒有#!這一行,那麼它執行時會預設用當前Shell去解釋這個指令碼(即:$SHELL環境變數)。
2. 如果#!之後的解釋程式是一個可執行檔案,那麼執行這個指令碼時,它就會把檔名及其引數一起作為引數傳給那個解釋程式去執行。
3. 如果#!指定的解釋程式沒有可執行許可權,則會報錯“bad interpreter: Permission denied”。如果#!指定的解釋程式不是一個可執行檔案,那麼指定的解釋程式會被忽略,轉而交給當前的SHELL去執行這個指令碼。
4. 如果#!指定的解釋程式不存在,那麼會報錯“bad interpreter: No such file or directory”。注意:#!之後的解釋程式,需要寫其絕對路徑(如:#!/bin/bash),它是不會自動到$PATH中尋找直譯器的。
5. 當然,如果你使用”bash test.sh”這樣的命令來執行指令碼,那麼#!這一行將會被忽略掉,直譯器當然是用命令列中顯式指定的bash。
原文連結:
原文連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2134581/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JDK 11 確定將引入 Shebang #! 符號JDK符號
- Linux中的特殊符號含義及作用!Linux符號
- linux常見特殊符號介紹Linux符號
- 如何在Mac上使用表情符號Mac符號
- linux下找出核心符號資訊的4種方法Linux符號
- 如何在Mac上快速輸入特殊符號?Mac快速輸入特殊符號小技巧Mac符號
- linux 全盤搜尋 動態庫符號Linux符號
- Linux檔案許可權符號含義Linux符號
- [C]有符號數和無符號數符號
- package.json 中的版本號,符號 ~ 與 ^ 的區別及其他符號的含義PackageJSON符號
- CSS @ 符號CSS符號
- 符號(註釋符+轉義符+接續符)符號
- _下劃線這個符號電腦怎麼打 _符號電腦上怎麼打出來符號
- Linux - 回車符和換行符及其在不同系統上的區別Linux
- 連結使用的符號符號
- Html/CSS的符號學HTMLCSS符號
- HTML 中的特殊符號HTML符號
- python的識別符號Python符號
- 頓號在鍵盤上怎麼打 頓號符號在鍵盤上怎麼打不出來符號
- dotNet符號檔案(pdb),符號包(snupkg)和SourceLink符號
- 在 Linux 中怎樣移除(刪除)符號連結Linux符號
- 符號連結符號
- 流程圖符號流程圖符號
- 找不到符號符號
- 識別符號符號
- python 中 *符號Python符號
- 關於 Bash 指令碼中 Shebang 的趣事指令碼
- 數學符號的來歷符號
- (2)使用的數學符號符號
- latex 中的存在,任意, ξ 符號符號
- Yaml中特殊符號"| > |+ |-"的作用YAML符號
- Room & Kotlin 符號的處理OOMKotlin符號
- Verilog有符號數、無符號數之間的賦值與運算符號賦值
- 冒號電腦鍵盤怎麼打 冒號符號:在鍵盤上怎麼按符號
- 深入理解ES6--6.符號與符號屬性符號
- latex 屬於符號和根號符號
- 查詢 - 符號表符號
- Markdown數學符號符號
- LaTex弧長符號符號