前言
眾所周知Shell 中的變量只作用于當前進程。如需在子進程中創建副本可使用 export 內建命令。 有時使用臨時變量語法可以非常方便。
變量使用
例如:
url=http://harttle.comecho $url
export 到子進程
通常變量是不需要 export 的,但是當你需要把一個工作分割成若個小的任務, 分別用一個腳本來實現的時候,就需要把變量名傳遞給它們。 比如有一個 spider.sh 來獲下載任意 URL 到臨時目錄:
#!/usr/bin/env bashcurl $url > $TMPDIR/$RANDOM.html
我們需要將當前腳本中的 url 傳遞給spider.sh:
export url=http://harttle.combash ./spider.sh# 等價于(如果該文件有可執行權限的話)./spider.sh
值得注意的是export只會在子進程中創建變量的副本,即spider.sh對它的改動不會體現在當前進程。
在當前進程執行腳本
使用 source 或 . 內建命令可以在當前進程執行另一個腳本,因此當前上下文的變量對該腳本是可見的。
url=http://harttle.comsource ./spider.sh# 等價于. ./spider.sh
臨時設置環境變量
根據 Shell 語法,在一個簡單命令前可以包含任意個賦值語句。這些變量賦值將會在執行命令前展開,等效于臨時的環境變量。
A “simple command” is a sequence of optional variable assignments and redirections, in any sequence, optionally followed by words and redirections, terminated by a control operator. 主站蜘蛛池模板: 和林格尔县| 桃园县| 延庆县| 如东县| 莲花县| 金湖县| 南岸区| 道孚县| 芒康县| 南阳市| 霍州市| 锦州市| 深泽县| 汪清县| 马鞍山市| 雷州市| 洪雅县| 凭祥市| 无锡市| 运城市| 盐亭县| 宁武县| 墨玉县| 舞钢市| 油尖旺区| 达日县| 如皋市| 鸡东县| 增城市| 蒲城县| 保定市| 塔河县| 蚌埠市| 浦城县| 宁都县| 东乡| 仙桃市| 兴城市| 云阳县| 凤庆县| 托里县|