bash腳本編程之一 變量及變量類型

shell編程:
python

編譯器,解釋器shell

編程語言:機器語言、彙編語言、高級語言編程


靜態語言:編譯型語言bash

    強類型(變量):變量在使用前,必須事先聲明,甚至還須要初始化編程語言

    關鍵字:ide

    事先轉換成可執行格式加密

    C、C++、JAVA、C#spa


動態語言:解釋型語言,on the fly命令行

弱類型:邊解釋邊執行,變量用時聲明,甚至不區分類型:3d

PHPshellpythonperl


面向過程:  shellC

面向對象:JAVApythonperlC++


變量:

變量:內存空間的命名

內存:編址的存儲單元

進程:一個程序運行會產生相關進程。


計算機數據的基本存儲單位。 8bit()=1Byte(字節) 1024Byte(字節)=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB

變量類型:事先肯定數據的存儲格式和長度。

一個字符佔一個字節,一個漢字佔兩個字節



  字符:

  數值:

     整型

     浮點型:11.23/1.123*10^1/0.1123*10^2   

     2015/10/1064bit

     99999  24bit

 10(字符)2個字符  16bit

 10 (數值) 1010  4位  8bit  (一個字節8位)



整型,8bit256

0-255, 溢出

 

布爾型:真假型

邏輯運算:與、或、非、異或

1:真

0:假

異或:兩個操做數相同爲假,不一樣爲真


變量賦值:VAR_NAME=VALUE


bash變量類型:

環境變量

本地變量(局部變量)

位置變量

特殊變量


環境變量:做用域爲當前shell進程及其子進程

         export VARNAME=VALUE 

         VARNAME=VALUE

         export VARNAME

        「導出


本地變量:整個bash進程均可以使用

         set  VARNAME=VALUE  


局部變量:做用域爲當前代碼段

         local VARNAME=VALUE  


腳本在執行時會啓動一個子shell進程:

     命令行中啓動的腳本會繼承當前shell環境變量;

     系統自動執行的腳本(非命令行啓動)就須要自我定須要各環境變量;


bash進程中定義變量

wKioL1Uy09awPAXMAABD7vsBy1I041.jpg

引用變量:${VARNAMW},有時候括號可省略。

 wKioL1Uy1MzRUdM6AABOe9ClnzI843.jpg


「」弱引用,變量可作替換的

‘’強引用,變量不可作替換的

   wKiom1Uy042hHD6iAAAxj-u9lUw837.jpg


位置變量:

  $1$2.....

 

特殊變量:

$? :上一個命令的執行狀態返回值(正確或錯誤);


程序執行後,可能有兩類返回值:

程序執行結果

程序狀態返回代碼(0-255

    0  :正確執行

    1-255 :錯誤執行,1,2,127系統預留;

wKiom1Uy07bxhFGQAAB9csgbt4Q175.jpg


判斷一個用戶是否存在:

wKioL1Uy1TaSGED6AABNYXrEo1Q372.jpg


輸出重定向:

 >

 >>

2>

2>>

&>

/dev/null  : 軟件設備,bit bucket,數據黑洞。

wKioL1Uy1W7g9nPGAAAl9y-qAt4117.jpg


查看當前shell中的變量:set

查看當前shell中的環境變量:printenv、env、export 


變量中追加變量(給字符串變量賦值)

wKiom1Uy1EOQZDWUAABFUZsi12c409.jpg


wKioL1Uy1Zvg07SuAABTeLr-9_4939.jpg


wKiom1Uy1EPSnSlqAABQKYFeNFI780.jpg


變量默認是字符型,不能作算術運算的

wKioL1Uy1g-T1_S9AAA0bFujzgI730.jpg


腳本:命令的堆砌,按實際須要,結合命令流程控制機制實現的程序

Linux內核只能識別ELF(可執行可連接)格式

wKioL1Uy1iijKhziAAArRPswtWY836.jpg


wKiom1Uy1NCzyZkHAAAifX4SNJg970.jpg

Linux內核是不能識別ASCII格式的,發現這不是可執行文件的時候得告訴內核這是一個腳本,讓內核啓動一個腳本解釋器來執行它。

 

每一個腳本開頭行都有一個魔數(shebang):

#/bin/bash   (#!開頭,後面接着解釋器路徑)

wKioL1Uy1k-zfcZOAAAbayzOLJY860.jpg


要想要腳本獨立執行腳本文件必須有執行權限

wKiom1Uy1Q7gmmtPAABmKR26rCk842.jpg


變量名稱:

  1、只能包含字母、數字和下劃線,而且不能數字開頭

  2、不該該跟系統中已有的環境變量重名

  3、最好作到見名知意



練習:寫一個腳本,完成如下任務

一、添加5個用戶,user1.....user5

二、每一個用戶的密碼同用戶名,並且要求,添加密碼完成後不顯示passwd命令的執行結果信息

三、每一個用戶添加完成後,都要顯示用戶某某已經成功添加。

wKioL1Uy1nyx2zTuAABG0IUUl_c336.jpg

相關文章
相關標籤/搜索