shell程式設計 bash變數介紹

2021-10-02 07:43:08 字數 2298 閱讀 2201

shell程式設計--bash變數介紹 ,變數是計算機記憶體的單元,其中存放的值可以改變。當 shell 指令碼需要儲存一些資訊時,如乙個檔名或乙個數字,就把它存放在乙個變數中。

bash變數型別

本地變數的作用域為整個bash程序。區域性變數屬於本地變數。在bash中宣告變數的週期隨著該程序的週期而存在。

定義本地變數:set varname=jerry

引用變數:$,括號可省略

區域性變數的宣告:local varname=value

環境變數的作用域為當前shell程序及其子程序

宣告:export varname=value或者varname=value; export varname

指令碼在執行時會啟動乙個子shell程序

命令列中啟動的指令碼會繼承當前shell的環境變數

系統自動執行的指令碼(非命令列啟動)就需要自我定義需要各環境變數

$1, $2, ...

shift: 對引數進行輪換,預設輪換乙個引數

#!/bin/bash

#echo $1

shift

echo $1

shift

echo $1

shift

./filetest.sh /etc/fstab /etc/inittab

$1:/etc/fstab

$2:/etc/inittab

$?: 上乙個命令執行狀態的返回值

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

程式執行結果

程式狀態返回**(0-255)

0: 正確執行

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

$#: 引數的個數

$*: 引數列表

$@: 引數列表

變數的撤銷及檢視

unset varname
set: 檢視當前shell中的變數(包括環境變數和本地變數)

printenv、env、export: 檢視當前shell中的環境變數

變數命名規則

1、變數與變數內容以乙個等號"="來連線,如下所示:

myname=dabric

2、等號兩邊不能直接接空格符,如下錯誤:

myname= dabric 或 myname=dab ric

3、變數名稱只能是英文本母與數字,但是開頭字元不能時數字;

4、變數內容若有空格符可使用雙引號或單引號將變數內容結合起來,但雙引號內的特殊字元如$等,可以保有原本的特性,如下所示:

var="lang is $lang" 則echo $var 可得 lang is en_us.utf-8

單引號內的特殊字元則僅為一般字元(純文字),如下所示:

var='lang is $lang' 則echo $var 可得 lang is $lang

總之在bash中:

"":弱引用,可以實現變數替換

'':強引用,不完成變數替換

5、可以使用跳脫字元"\"將特殊字元(如[enter], $, \, 空格符, '等)變成一般字元,如:

myname=dab\ ric

6、在一串指令的執行中,還需要藉由其他額外的指令所提供的資訊時,可以使用反引號"`command`"或"$(command)"。例如想要取得核心版本的設定:

version=$(uname -r)

echo $version

如何進入到您目前核心的模組目錄:

# cd /lib/modules/`uname -r`/kernel

# cd /lib/moudles/$(uname -r)/kernel

7、若改變量為擴增變數內容時,則可用"$變數名稱"或$累加內容,如下所示:

path="$path":/home/bin 或 path=$:/home/bin

8、若該變數需要在其他子程式執行,則需要以export來使變數變成環境變數:

# export path

9、通常大寫字元為系統預設變數,自行設定變數可以使用小寫字元,方便判斷;

10、取消變數的方法為使用unset:"unset 變數名稱"例如取消myname的設定:

# unset myname

變數可以在bash配置檔案(~/.bashrc)中直接指定,保證每次登入shell該變數都存在

shell程式設計 bash變數介紹

shell程式設計 bash變數介紹 變數是計算機記憶體的單元,其中存放的值可以改變。當 shell 指令碼需要儲存一些資訊時,如乙個檔名或乙個數字,就把它存放在乙個變數中。bash變數型別 本地變數的作用域為整個bash程序。區域性變數屬於本地變數。在bash中宣告變數的週期隨著該程序的週期而存在...

shell程式設計 bash變數介紹

shell程式設計 bash變數介紹 變數是計算機記憶體的單元,其中存放的值可以改變。當 shell 指令碼需要儲存一些資訊時,如乙個檔名或乙個數字,就把它存放在乙個變數中。bash變數型別 本地變數的作用域為整個bash程序。區域性變數屬於本地變數。在bash中宣告變數的週期隨著該程序的週期而存在...

Shell程式設計(bash變數)

bash變數 一 使用者自定義變數 二 環境變數 三 位置引數變數 四 預定義變數 一使用者自定義變數 變數呼叫 echo 變數名 變數刪除 unset 變數名 二環境變數 環境變數是全域性變數 使用者自定義變數是區域性變數 對系統生效的環境變數名和變數作用是固定的 設定環境變數 export 變數...