#!/bin/bash
#comments
your commands go here
首行中的符號#!告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。
除第一行外,以#開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上",這個符號表明下一行與此行會合併為同一行。
有環境變數、內部變數、使用者變數。
shell script是一種弱型別語言,使用變數的時候無需首先宣告其型別。
variable_name = variable_value
取值的時候要在變數名前加$,$variable_name可以在引號中使用,這一點和其他高階語言是明顯不同的。
特殊變數
$$shell本身的pid(processid)
$!shell最後執行的後台process的pid
$?最後執行的命令的結束**(返回值)
$#新增到shell的引數個數
$0shell本身的檔名
$1~$n
新增到shell的各引數值。$1是第1引數、$2是第2引數…。
==是否相等
!= 是否不等
-n 長度是否大於0
-z 長度是否等於0
-d是否為目錄
-f 是否為檔案 -r
是否可讀
-w 是否可寫 -x
是否可執行
! 等價c
語言 !
-a 等價
c語言 &&
-o 等價
c語言 ||
for current_variable
dostatements
done
if [ expression ] ; then
statements
elif [ expression ] ; then
statements
else
statements
fi說明:elif或else語句不是必需的。
case str in
str1 | str2)
statements;;
str3|str4)
statements;;
*)statements;;
esac
說明:*對應c語言的 default; ";;"對應c語言的break。
退出shell程式並返回乙個值,方便被另乙個shell呼叫並給出反饋。
如 /root/soft/apache-tomcat-8.0.21/bin/shutdown.sh
執行的時候開乙個sub-shell執行呼叫的指令碼,sub-shell執行完畢後返回parent-shell。 sub-shell從parent-shell繼承環境變數,但是sub-shell中的環境變數不會帶回parent-shell。 如
exec /root/soft/apache-tomcat-8.0.21/bin/shutdown.sh
在當前shell下執行目標指令碼,執行結束後,當前指令碼中exec行之後的內容就不會再執行了。
如 source
/root/soft/apache-tomcat-8.0.21/bin/shutdown.sh 或.
/root/soft/apache-tomcat-8.0.21/bin/shutdown.sh
source命令也稱為「點命令」,也就是乙個點符號(.),是bash的內部命令。
讀取目標指令碼裡面的語句依次在當前shell裡面執行,沒有建立新的子shell。那麼指令碼裡面所有新建、改變變數的語句都會儲存在當前shell裡面。
linux shell 程式設計
1 程式設計入門 shell的簡介。從程式設計師的角度來看,shell本身是一種用c語言編寫的程式,從使用者的角度來看,shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,完成更加複雜的操作。在linux gui日益完善的今天,在系統管理...
Linux Shell 程式設計
檔案描述 shell 代號 dev stdin 標準輸入,一般指的是鍵盤輸入 dev stdout 標準輸出,一般指終端顯示器 dev stderr 標準錯誤,一般指終端顯示器 l輸出重定向 l輸入重定向 l追加重定向 l錯誤重定向 2 l輸出和錯誤同時重定向 應用例子 1.將 ls的結果輸出到檔案...
Linux Shell程式設計
linux的shell程式設計 history 用來檢視命令歷史的 也可以用!表示 預設的命令歷史有1000條 history相關的小技巧,就和!有關係 上一條命令的最後一條引數 555 在命令歷史裡面,執行第555條命令 vi 命令歷史裡從上往下看,最近的用到了vi的命令 tab鍵可以補全檔案路徑...