bash程式設計之變量、變量類型
變量:一段命名的記憶體空間
變量類型:事先确定資料的存儲格式和長度(整型、浮點型、真假型)
Shell程式設計: 弱類型程式設計語言
強:變量在使用前,必須事先聲明,甚至還需要初始化;
弱:變量用時聲明,甚至不區分類型;
變量指派:VAR_NAME=VALUE
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuATOygTa2QHc5llQCFUQaFTNWNkd20CNaFDTvl2S39CXxQzLchzNvwFMw00LcJDMzZWe39CXt92Yu8GdjFTNuUzcvw1LcpDc0RHaiojIsJye.png)
bash變量類型:
環境變量
本地變量(局部變量)
位置變量
特殊變量(系統内置的變量、用于存儲特殊的資料)
引用變量:${VAR_NAME},括号可以省略,是否省略主要看其引用的變量名稱是否容易引起混淆
本地變量:
set (可省略)VARNAME=VALUE: 作用域為整個bash程序;
局部變量:
local VARNAME=VALUE:作用域為目前代碼段;
環境變量:作用域為目前shell程序及其子程序;(隻對目前shell以及其子shell有效)
1.export VARNAME=VALUE
2.VARNAME=VALUE
export (導出) VARNAME
位置變量:$1, $2, ...
特殊變量:
$?: 上一個指令的執行狀态傳回值;
程式執行,可能有兩類傳回值:
程式執行結果
程式狀态傳回代碼(0-255)
0:正确執行
1-255:錯誤執行,1,2,127系統預留;
注:表示不存在學生這個使用者
撤消變量:unset VARNAME
腳本:指令的堆砌,按實際需要,結合指令流程控制機制實作的源程式
每一個shell腳本的最前面一句#!/bin/bash(shebang: 魔數)
# :表示注釋行,不執行
注:腳本在執行時會啟動一個子shell程序;
指令行中啟動的腳本會繼承目前shell環境變量;
系統自動執行的腳本(非指令行啟動)就需要自我定義需要各環境變量;
Shell預設是字元串,不做算術運算;比如:
寫一個腳本,完成以下任務
1、添加2個使用者, user1,user2
2、每個使用者的密碼同使用者名,而且要求,添加密碼完成後不顯示passwd指令的執行結果資訊;
3、每個使用者添加完成後,都要顯示使用者某某已經成功添加;
- 使用一個變量儲存一個使用者
- 删除此變量中的目錄,并且一并删除其家目錄
- 顯示“使用者删除成功”