1. 程式人生 > 其它 >Shell指令碼學習筆記1

Shell指令碼學習筆記1

Shell指令碼

Shell指令碼是一種為Shell編寫的指令碼程式。

由於習慣的原因,本文出現的“Shell程式設計”都是值shell指令碼程式設計,不是指開發Shell本身。

Shell環境

Shell程式設計只需要有一個能編寫程式碼的文字編輯器和一個能解釋執行的指令碼直譯器就可以了。

Linux的Shell指令碼種類眾多,常見的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

由於易用和免費,Bash(Bourne Again Shell)在日常工作中被廣泛應用,同時,他也是大多數Linux系統預設的Shell。一般情況下,人們並不區分Bourne Again Shell和Bourne Shell,所以 #!/bin/sh

同樣也可以改成 #!/bin/bash

#! 告訴系統其後的路徑所指定的程式就是解釋此指令碼檔案的Shell指令碼。

PS:

#!/bin/bash      #告訴系統需要用什麼直譯器來執行
echo "Hello World !"  #echo命令用於向視窗輸出文字

執行指令碼的方法

1、作為可執行程式

將指令碼儲存為test.sh,並cd 到相應目錄:

chmod +x ./test.sh    #使指令碼具有執行許可權
./test.sh                    #執行指令碼 

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

2、作為直譯器引數

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

/bin/sh test.sh
/bin/php test.php

這種執行方式是,不需要在第一行指定直譯器的資訊,寫了也沒用。

本文參考:https://www.runoob.com/linux/linux-shell.html