Shell相關知識

一隻李放狗發表於2019-04-14

Shell簡介

  • Shell 是一個用 C 語言編寫的程式,它是使用者使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程式設計語言。Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。
  • Shell 指令碼(shell script),是一種為 shell 編寫的指令碼程式。業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 "shell程式設計" 都是指 shell 指令碼程式設計,不是指開發 shell 自身。

執行 Shell 指令碼有兩種方法:

作為可執行程式

./test.sh #執行指令碼

  • 注意,一定要寫成 ./test.sh,而不是 test.sh,執行其它二進位制的程式也一樣,直接寫 test.sh,linux 系統會去 PATH 裡尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 裡,你的當前目錄通常不在 PATH 裡,所以寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統說,就在當前目錄找。

作為直譯器引數

  • 這種執行方式是,直接執行直譯器,其引數就是 shell 指令碼的檔名,如:

/bin/sh test.sh /bin/php test.php 這種方式執行的指令碼,不需要在第一行指定直譯器資訊,寫了也沒用。