bash腳本編程之(1/4) 變量、變量類型等筆記

Shell編程:


編譯器,解釋器


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


靜態語言: 編譯型語言

強類型(變量)

事先轉換成可執行格式

c\c++\JAVA\c#

動態語言: 解釋性語言

弱類型

邊解釋邊執行

asp/asp.net/php/shell/python/perl

Shell: 弱類型編程語言

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

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




面向過程: Shell C

面向對象: JAVA Python, perl, c++

變量:內存空間,命名

內存:編址的存儲單元

進程:


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

字符

數值

×××

浮點型

 

編程能力:

腳本編程

變量賦值: VAR_NAME=VALUE


bash變量類型:

環境變量

本地變量(局部變量)

位置變量

特殊變量

本地變量:

VAR_NAME=VALUE: 作用域爲整個腳本進程:

局部變量:

local VARNAME=VALUE 作用域爲當前代碼段

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

export VARNAME=value

"導出"

兩種方式:

1. export VARNAME=VALUE

2. VARNAME=VALUE

export VARNAME

位置變量

$1, $2, ...

特殊變量:

$?  上一條命令的執行狀態返回值:

程序執行結果

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

0: 正確執行

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

輸出重定向:

>

>>

2>

2>>

&> 重定向標準輸出或錯誤輸出至同一個文件


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

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



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

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

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


撤銷變量: 

unset VARNAME  (千萬不要加$)


查看當前shell中的變量

set(包括環境變量和本地變量)

查看當前shell中的環境變量:

printenv

env

export


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

shebang: 魔數

#!/bin/bash


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

1. 添加5個用戶,user1,user2,...user5

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

3. 每個用戶添加完成後,都要顯示用戶xx已經成功添加


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

1. 使用一個變量保存一個用戶名:

2. 刪除此變量中的用戶,且一併刪除其家目錄

3. 顯示“用戶刪除完成”類的信息


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