做 web 開發難免要和 linux 伺服器打交道,掌握一些 shell 指令碼程式設計可以大大提高工作效率,也有助於理解 linux 思想。最近事情不多,開始對著書本學習 linux shell 程式設計。
shell 指令碼實際上就是一組儲存在檔案中的 linux 命令。我們知道 linux 的設計思想是提供大量功能簡單抽象程式,讓使用者通過組合使用它們來完成具體和複雜的任務。這使得 linux 簡潔而靈活,但也帶來了一些問題,就是使用者要完成具體任務需要思考如何達到目的,還要記憶許多命令和引數。要解決這個問題就可以把常用任務處理命令組合儲存到指令碼中,下次需要用到時只需要執行指令碼而不用去記複雜的命令組合,如果別人想用這個功能也可以直接調指令碼而不用再次思考實現方式了,這說起來和程式設計中把常用到的功能抽象成函式供不同地方呼叫是乙個道理。
shell 指令碼幾乎就是儲存下來的一組 shell 命令,例如:
#!/bin/bash
pwd# 列印當前路徑
ls # 列出目錄內容
# 這是注釋
這個指令碼先列印當前目錄路徑再列出目錄中的內容。命令和在 shell 中敲的一樣,指令碼第一行以 #! 開頭,後面跟上可以執行這段指令碼的程式路徑,一般是 bash,可以根據需要換成別的 shell。其他語言的指令碼例如 python,perl 只要將第一行的程式路勁修改為對應的指令碼直譯器即可。
指令碼中可通過 # 來注釋,在一行中 # 右邊的內容被當作注釋。
指令碼儲存好後在 shell 中即可通過「bash 指令碼路基「 的方式執行,另外由於我們指明了執行指令碼的程式,所以也可以直接「指令碼絕對路徑」或者在指令碼目錄下「./指令碼名 來執行指令碼」,但這兩種方式需要指令碼檔案有可執行許可權。例如我們將上面那段指令碼儲存到 ~/shell/pwdls.sh 中,則可以通過以下三種方式執行指令碼:
bash ~/shell/pwdls.sh
~/shell/pwdls.sh
cd ~/shell; ./pwdls.sh
如果這樣執行還覺得不方便,可以將你放指令碼的目錄加入系統環境變數 path 中,這樣就可以像 linux 命令那樣,直接指令碼名即可執行。同樣要注意指令碼檔案需要有可執行許可權。
export path=$path:$home/shell # 將指令碼目錄加入到 path 環境變數中
pwdls.sh # 在任何位置都可以通過指令碼名直接執行指令碼了
shell 程式設計 shell 指令碼基礎
shell 是乙個命令直譯器,它在作業系統的最外層,負責直接與使用者進行對話,把使用者的輸入解釋給作業系統,並處理各種各樣的作業系統的輸出結果,輸出到螢幕反饋給使用者。把 linux 命令或語句放在乙個檔案中,通過這個程式檔案去執行,這個程式為 shell 指令碼或 shell 程式 可以在指令碼中...
Shell 指令碼基礎學習 (一)
簡要介紹 shell基本上是乙個命令直譯器,類似於dos下的command.com。它接收使用者命令 如ls等 然後呼叫相應的應用程式。shell是作業系統最外面的一層。shell管理你與作業系統之間的互動 等待你輸入,互動式解釋和執行你輸入的命令或者自動地解釋和執行預先設定好的一連串的命令。she...
shell指令碼程式設計基礎
1.使用多個命令 2.建立shell指令碼檔案 shell指令碼中注釋一般以 開頭,shell指令碼不會處理注釋的行。但是,shell指令碼的第一行是例外。後的 會告訴shell用哪個shell來執行指令碼,shell會根據命令在檔案 現的先後順序進行處理。下面是建立指令碼名為demo的檔案。bin...