llinux學習基礎4之變量及條件測試

一 bash的變量類型 

bash變量類型:

環境變量

本地變量(局部變量)

位置變量

特殊變量

bash中的變量分爲四種 一 是環境變量 二 是本地變量 三是局部變量,每種變量的作用域不一樣。環境變量作用於當前shell 及其子shell 。本地變量 緊作用於當前shell。局部變量緊作用於當前shell中一段代碼。

1.1 環境變量的定義 export VALNAME=VALUE 

注意:***命令行執行的腳本程序都是要新建一個進程,其執行過程就是開啓子shell,因此環境變量對子進程是有效的。但是系統默認執行的腳本 是不需要開開啓子shell的,但是他是需要定義環境變量的!

1.2 本地變量的定義  VALNAME=VALUE 

1.3 局部變量的定義  local VALNAME=VALUE 


1.4位置變量

$1 $2 $3  第一個位置  第二個位置 第三個位置

5特殊變量(系統變量)

$? 表示上一個命令的執行狀態返回值

執行成功0

執行錯誤1-255

其中12127系統已經定義了 其他的用戶可以自己定義錯誤代碼



二變量的引用

${} 其中{}可以省略  在不引起變量名稱混淆的前提下{}可以省略

例如 ANIMIAL=pig

echo there are some $ANIMINALs  

此時就會引起變量名的混淆,就必須添加{},如果引用了一個沒有賦值的變量名 則會顯示空

 

NAME=jim

echo my name is $NAME  雙引號弱引用可以變量替換(引用)

echomy name is $NAME 單引號強引用不能用於變量替換(引用)

三 系統中變量的查看 

   1查看系統中所有環境變量和本地變量  set 

   2 查看系統中所有環境變量 printenv ,export ,env 

 

 腳本的執行

#!/bin/bash

腳本的第一行必須是指明腳本執行的解釋器的路徑

腳本編寫完成後有兩種方式執行腳本

第一種是直接使用 bash 命令的方式執行

bash /tmp/onebash.sh

第二種是給文件執行權限 在輸入文件的路徑來執行,或者是將文件的路徑添加到$PATH的路徑中去後,在直接執行文件名來執行!



二 條件測試類型 

1 整數測試 

2字符串測試

3文件測試 

 條件測試的表達式一般的三種形式 1 [空格expression空格]

                                2[[空格expression空格]]

                                3 test expression 

1整數測試 -eq  測試兩個整數是否相等,等爲真,不等爲假

          -ne  測試兩個整數是否不等,不等爲真,等爲假

          -gt  大於

          -ge 大於等於

          -lt 小於

          -le 小於等於 

2字符串測試 

            == 等於 

            != 不等於

            -n  測試字符串是否不爲空,不爲空爲真,空爲假

            -z  測試字符串是否爲空 空爲真 不空爲假

3文件測試 實例

1[ -e /etc/inittab ] 測試是否存在

2[ -r /etc/inittab ] 測試當前登錄的用戶是否具有讀權限

3[ -w /etc/inittab ]測試當前登錄的用戶是否具有寫權限

4[ -x /etc/inittab ]測試當前登錄的用戶具有執行權限

5[ -f /etc/inittab ]測試該文件是否是普通文件

6[ -d /etc/inittab ]測試該文件是否是目錄 


命令間的邏輯判斷

&& ||

&& 操作是 第一個爲真時 第二個一定會執行

           第一個爲假時  第二個一定不執行

||  操作時 第一個爲假時 第二個一定會執行

          第一個爲真是 第二個一定不會執行

注意:&& 或者|| 都是取的命令執行後的返回值進行判斷 而不是命令的執行結果

注意 所有變量的名稱只能是 字母數字和下劃線 爲組合且不能以數字開頭 不應該與系統中的已有的變量同名

id user1 &> /dev/null && echo the user is exist || useradd user1

如果用戶不存在 則添加 並給其密碼 否則顯示已存在

 

! id user2 &> /dev/null && useradd user2 && echo "user2" | passwd --stdin user2 &> /dev/null  || echo user2 is exist  

2判斷一個用戶的uid 是否爲0 如果是 顯示爲管理員 否則顯示爲普通用戶

[ `id -u root` -eq 0 ] && echo the current user is admin || echo the current user is common


四算數運算 

shell 中如何進行算術運算

A=3  B=5  

1 let C=$A + $B

2 C=$[$A+$B] 

3 C=$(($A+$B))

4 exper 算數表達式  算數表達式中各操作數和運算符之間要有表達式,且要使用反引號

C=`exper $A + $B `



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章