完成這一章,你可以做到以下事情:
使用shell的替代功能,包括變數替代,命令替代,和波浪號替代。
設置和修改shell變數。
將區域變數傳給環境。
使變數對子進程生效。
解釋進程是如何被創建的。
7.0 shell 的替代功能
在shell 中有三種類型的替代:
變數替代
命令替代
波浪號替代
替代的作用是加速命令列的鍵入和執行
7.1 Shell 變數存儲
Shell內有兩塊記憶體區域用於存儲shell變數,它們是:局部資料區域和環境。 當定義了一個新的變數時,記憶體會被分配給局部資料區域,在這個區域中的變數是當前shell 私有的,通常稱為區域變數,任何以後的子進程都不會存取到這些區域變數。 但是,子進程能夠存取那些傳送到環境中去的變數。
在你的登錄進程過程中,有幾個特殊的shell變數會被定義。 其中大多數的變數存儲在環境中:一些變數,例如 ps1 和ps2,存儲在局部資料區域。 這些變數的值能夠被改變,用於定制你的終端特性。
env 命令能夠顯示當前保存在環境中所有的變數,例如:
$ env
MANPATH=/usr/share/man: /usr/contrib/man: /usr/local/man
PATH=/usr/bin: /usr/ccs/bin:/usr/contrib/bin: /usr/local/bin
LOGNAME=user3
ERASE=^H
SHELL=/usr/bin/sh
HOME=/home/user3
TERM=hpterm
PWD=/home/user3
TZ=PST8PDT
EDTOR=/usr/bin/vi
7.2 設置Shell變數
語法: HTTP://www.aliyun.com/zixun/aggregation/11696.html">name=value
例子:
$ color=lavender ?? ? ??????? 給一個區域變數賦值
$ count=3 ????????????? ? 給一個區域變數賦值
$ dir_name=tree/car.models/ford ?? 給一個區域變數賦值
$ PS1=hi_there?????????? ?? 更改環境變數的值
$ set ??????????? ????? 顯示所有的變數和值
當一個使用者創建了一個新的變數,例如 color ,這個變數會存儲在局部資料區域中。 當給一個已經存在的環境變數賦予一個新值,例如 path ,這個新值會代替環境中的舊的值。