一、shell程式設計變數簡介
shell程式語言屬於弱語言,在使用變數前無需對變數進行宣告,變數的預設型別為「字串型別」,可以通過echo $變數名 進行提取變數的值。在bash中,變數型別分為:環境變數、本地變數(區域性變數)、位置變數、特殊變數,其中環境變數和本地變數是以作用域來進行區分。
二、變數配置原則
1、變數名只能採用英文本母跟數字命名,並且不能以數字開頭
2、給變數賦值時,等號兩邊不能有空格
3、若等號右邊字串之間有空格或者特殊符號,可以採用 [雙引號、單引號]進行括住
例如:name='zws is a student'
name="zws is a student"
注意:a. 單引號與雙引號的區別:單引號擴住的內容是屬於字串,純文字的,不會對特殊字元進行轉義,雙引號擴住的內容會對特殊字元進行轉義。
b.如果字元內容存在' " 特殊字元時,需要注意,因為單引號、雙引號是成對出現的。
4、可以採用 \ 將特殊字元轉換成一般字元(空格、$等)
5、如果需要其他命令返回的值,可通過` `(反單引號)或者$() 擴住相關命令
6、如果需要在子程式中執行,需要通過export將該變數變成環境變數(預設情況下所有的變數都是屬於區域性變數)
7、取消變數
unset 變數名
8、 $ 如果能夠準確的明確變數明時,可以省略{}
三、變數的資料型別
預設情況下變數的資料型別都是屬於字串型別,沒辦法對變數進行運算等操作,可以通過declare、typeset方式來設定變數的資料型別。總共有 整型、字串、陣列 等資料型別。
1、declare的使用方法
declare [-aixr] variablea.讓sum進行100+200+300數字執行得出和選項與引數:
-a :將後面名為 variable 的變數定義成為陣列 (array) 型別
-i :將後面名為 variable 的變數定義成為整數數字 (integer) 型別
-x :用法與 export 一樣,就是將後面的 variable 變成環境變數;
-r :將變數配置成為 readonly 型別,該變數不可被更改內容,也不能 unset
b.將sum變成環境變數
c.將sum變成唯讀屬性
d.將sum變數轉回非環境變數
四、變數作用域
#本地變數:作用域為整個bash程序有效五、環境變數注意:1、指令碼在執行時會啟動乙個字shell子程序varname=value
#區域性變數:作用域為當前**段有效
local varname=value
#環境變數:作用域為當前的shell程序及其子程序
export varname=value
2、命令列啟動指令碼啟動指令碼會繼承當前shell環境變數。
3、系統自動執行的指令碼(非命令列啟動),需要手動定義環境變數。 ===》(crontab自動執行執行指令碼可能有問題)
六、if條件判斷
1、單層簡單條件判斷
if[ 條件判斷]; then
符合條件執行該語句
fi ---->結束 if
2、多重條件判斷
if七、case判斷1、case應用場景:[ 條件判斷式一 ]; then
符合條件一,執行該語句
elif [ 條件判斷式二 ]; then
符合條件二,執行該語句
else
條件一與二均不成立時,執行該語句
fi ------>結束if語句
適用於需要進行多重分支的應用情況(固定重數)
2、case語法格式
case $
變數名稱
in <===以case開頭 $+關鍵字 然後in結尾
模式1 )
<===判斷語句,可採用特殊字元
程式段1
;; <===使用兩個連續的分號,代表該模式程式段結束,類似c語言中的break;
模式2)
程式段2
;;*
) <===用 * 來代表所有其他值,類似c語言中的default。
預設執行程式段
;;esac
<===結束case語句 【case反過來寫】
shell基本使用教程
shell程式設計 1 沒有資料型別,都是字串,數值也時字串 建立變數 a hello echo aec ho a echo aech o echo 三者等價 echo ahe lloe cho hell ob a hello echo hello b ahello echo hel loba a ...
shell的基本使用
寫 bin bash,告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的 bash 程式。chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼your name harry 注意,變數名和等號之間不能有空格 if condition then command1 comm...
shell簡介及基本使用
shell 外殼 是乙個用 c 語言編寫的程式,它是使用者使用 linux 的橋梁。shell既是一種命令語言,又是一種程式語言。shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務。在linux中有很多態別的shell,不同的shell具備不同的功能,...