Shell編程之變量
一 Bash變量與變量分類
Bash是Linux中的標准Shell,因此經常稱Bash為Shell。
1. 變量命名規則
- 變量名可以由字母、數字、下划線組成,但必須以字母與下划線開頭;
- 變量名的長度不能超過255個字符;
- 變量名在有效范圍必須唯一;
- 在Bash中,變量的默認類型都字符串型;
2. 變量按照存儲類型分類
默認類型是字符串型。
- 字符串型,賦值時單雙引號皆可;
- 整形;
- 浮點型;
- 日期型;
二 用戶自定義變量
變量名與變量值都是用戶自定義的,就是說可以由用戶控制修改的。
1. 變量定義
變量名=變量值
注意:"="左右不能有空格。
2. 變量調用
echo是最簡單的變量調用,也只能用作輸出。
如:echo $變量名
3. 變量疊加
例如:
x=123
x="$x"456
x=${x}789
當echo $x時輸出123456789
用處:環境變量的添加,如PATH路徑。
4. 變量查看
set
能夠查詢當前系統運行的所有變量,包括系統環境變量與當前shell的用戶自定義變量。
選項:-u ,如果設定此選項,再用echo調用未聲明的變量時會報錯。
如y變量未被聲明賦值,使用echo $y時會打印出空行;如果先使用set -u,再echo $y時會提示不存在此變量的提示。
5. 變量刪除
unset
使用方法:unset x,unset並不是刪除變量里面的值,而是刪除變量,因此變量名前不需要加$。
三 bash環境變量
bash命令可以進入當前shell的子shell,可以通過pstree查看當前所在的shell,可以通過這個方法做后面的環境變量與用戶自定義變量生效區域的實驗。
1. 環境變量與用戶自定義變量的區別
環境變量是全局變量,用戶自定義變量是局部變量。
用戶自定義變量只在當前的 shell 中生效,環境變量在當前 shell 和這個 shell 的所有子 shell 中生效。
用戶可以自定義環境變量,但對系統生效的環境變量名和變量作用是固定的。
2. 用戶自定義環境變量
- export 變量名=變量值;
- 變量名=變量值 export 變量名;
3. 查看環境變量
- set 或 declare 查看所有變量
- env 查看環境變量
4. 增加環境變量
- 編寫bash腳本;
- 加入到PATH環境變量,用:分隔;
5. 刪除環境變量
$ unset 環境變量
6. PS1環境變量
即命令提示符設置的顯示,如:[root@qcxiao ~]#
以下相關的指令,注意:需要用set才能查看到PS1。

7. PS2環境變量
作用:當前行,命令顯示不完即換行時,可以加以利用。
四 bash語系變量
1. 當前語系查詢
- locale
#查詢當前系統語系
- LANG:定義系統主語系的變量;
- LC_ALL:定義整體語系的變量;
- locale -a | more 查詢所有語系環境;
2. 默認語系
保存在文件:/etc/sysconfig/i18n,這個語系變量表示在下次開機時的語系環境。
五 位置參數變量
1.
- 其中我認為$n有點類似於Java語言的形參;
- 使用$*、$@、$#時必須要用雙引號括起來;
六 預定義變量