天天看點

bash程式設計之變量、變量類型

bash程式設計之變量、變量類型

變量:一段命名的記憶體空間

變量類型:事先确定資料的存儲格式和長度(整型、浮點型、真假型)

Shell程式設計: 弱類型程式設計語言

強:變量在使用前,必須事先聲明,甚至還需要初始化;

弱:變量用時聲明,甚至不區分類型;

變量指派:VAR_NAME=VALUE

bash程式設計之變量、變量類型

bash變量類型:

         環境變量

         本地變量(局部變量)

         位置變量

         特殊變量(系統内置的變量、用于存儲特殊的資料)

引用變量:${VAR_NAME},括号可以省略,是否省略主要看其引用的變量名稱是否容易引起混淆

bash程式設計之變量、變量類型
不同的shell的是不同的程序
bash程式設計之變量、變量類型

本地變量:

set (可省略)VARNAME=VALUE: 作用域為整個bash程序;

局部變量:

local VARNAME=VALUE:作用域為目前代碼段;

環境變量:作用域為目前shell程序及其子程序;(隻對目前shell以及其子shell有效)

bash程式設計之變量、變量類型

1.export VARNAME=VALUE

2.VARNAME=VALUE

export (導出) VARNAME

位置變量:$1, $2, ...

特殊變量:

$?: 上一個指令的執行狀态傳回值;

bash程式設計之變量、變量類型

程式執行,可能有兩類傳回值:

         程式執行結果

         程式狀态傳回代碼(0-255)

                   0:正确執行

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

注:表示不存在學生這個使用者

撤消變量:unset VARNAME

bash程式設計之變量、變量類型
檢視當shell中變量:set
bash程式設計之變量、變量類型
檢視目前shell中的環境變量:printenv或者printexport
bash程式設計之變量、變量類型

腳本:指令的堆砌,按實際需要,結合指令流程控制機制實作的源程式

每一個shell腳本的最前面一句#!/bin/bash(shebang: 魔數)

# :表示注釋行,不執行

bash程式設計之變量、變量類型
給腳本添加執行權限(linux隻能識别ELF格式的檔案,然而腳本是ASSIC格式的檔案)
bash程式設計之變量、變量類型
給腳本檔案指定執行路徑(./frist.sh為目前路徑)
bash程式設計之變量、變量類型
去權限執行腳本:(bash frist.sh)直接用bash解釋器,但是在必須單獨執行的時候必須給與腳本檔案執行的權限
bash程式設計之變量、變量類型
/dev/null: 軟體裝置, bit bucket,資料黑洞       (表示輸入到裡面的資料不會被顯示出來)
bash程式設計之變量、變量類型
在shell變量中加入新的值:引用其前面的值即可
bash程式設計之變量、變量類型

注:腳本在執行時會啟動一個子shell程序;

         指令行中啟動的腳本會繼承目前shell環境變量;

         系統自動執行的腳本(非指令行啟動)就需要自我定義需要各環境變量;

Shell預設是字元串,不做算術運算;比如:

bash程式設計之變量、變量類型

寫一個腳本,完成以下任務

1、添加2個使用者, user1,user2

2、每個使用者的密碼同使用者名,而且要求,添加密碼完成後不顯示passwd指令的執行結果資訊;

3、每個使用者添加完成後,都要顯示使用者某某已經成功添加;

bash程式設計之變量、變量類型
bash程式設計之變量、變量類型
寫一個腳本,完成下面的任務。

  1. 使用一個變量儲存一個使用者
  2. 删除此變量中的目錄,并且一并删除其家目錄
  3. 顯示“使用者删除成功”

繼續閱讀