Shell變量及其相關命令
shell變量
兩種類型:shell環境變量(shell environment variable) 、用戶自定義變量(user-defined variable);
shell環境變量,定製shell運行環境並保證shell命令的正確執行。實現方式,它們的拷貝被傳遞給每個作爲shell的子進程運行的命令。初始化,在登錄過程中執行/etc/.profile文件時進行,該文件由系統管理員設置,用於爲系統上所有的用戶建立一個公共環境,另外用戶自己也有自己的啓動文件~/.profile。
CDPATH EDITOR ENV HOME MAIL MAILCHECK PATH PPID PS1 PS2 PWD TERM #都是可寫的
# 只讀環境變量: 處理 命令行參數 又稱 位置參數 命令行傳遞給shell腳本的參數
# 有一些只讀shell變量用來跟蹤當前進程的pid、最近後臺進程pid,以及最後一條命令的退出狀態等
$0 # 程序名
$1 - $9 # 第1個~第9個命令行參數的值
$* # 所有命令行參數的值
$@ # 同上;如果它被包含在引號中,如“$@”,則每個參數也各自包含在引號中
$# # 命令行參數的總數
$$ # 當前進程pid
$? # 最後一條命令的退出狀態
$! # 最近後臺進程(在後臺運行的最後一個進程) pid
讀寫shell變量
注意: = 前後沒空格;($)引用變量的當前值;
$ name=John # 1
$ echo $name
John
$ name=John Doe # 2.1.1 space,後面的當作命令執行
Doe: not found
$ name=”John Doe” # 2.1.2 double quote resolve
$ echo $name
John Doe
$ name=John* # 2.2.1 shell metacharacter,後面的當作shell元字符
$ echo $name
John.Bates.letter John.Johhsen.memo John.email
$ echo “$name” # 2.2.2 double quote resolve
John*
$ echo “The name $name sounds familiar!” # 2.2.3 double quote 只要在雙引號裏,對$做特殊處理,特殊字符替換爲普通字符
The name John* sounds familiar!
$ echo /$name # 3.1
$name
$ echo ‘$name’ # 3.2
$name