主頁(yè) > 知識(shí)庫(kù) > Shell中變量作用域的介紹與使用命令

Shell中變量作用域的介紹與使用命令

熱門(mén)標(biāo)簽:電銷(xiāo)機(jī)器人加盟多少錢(qián) 宿松高德地圖標(biāo)注 貴陽(yáng)400電話到哪里去辦理 申請(qǐng)400電話有什么用 400電話申請(qǐng)找 4層電梯外呼控制系統(tǒng)設(shè)計(jì) 汨羅代理外呼系統(tǒng) 網(wǎng)絡(luò)電話外呼系統(tǒng)撥號(hào)軟件 天津智能外呼系統(tǒng)排名

前言

眾所周知Shell 中的變量只作用于當(dāng)前進(jìn)程。如需在子進(jìn)程中創(chuàng)建副本可使用 export 內(nèi)建命令。 有時(shí)使用臨時(shí)變量語(yǔ)法可以非常方便。

變量使用

  • 任何地方都可以定義 Shell 變量,使用 = 分隔變量名和變量值。= 前后不可出現(xiàn)空格,但變量的值可以留空。
  • 讀取變量需要添加$前綴。
  • 變量作用域?yàn)楫?dāng)前進(jìn)程。

例如:

url=http://harttle.com
echo $url

export 到子進(jìn)程

通常變量是不需要 export 的,但是當(dāng)你需要把一個(gè)工作分割成若個(gè)小的任務(wù), 分別用一個(gè)腳本來(lái)實(shí)現(xiàn)的時(shí)候,就需要把變量名傳遞給它們。 比如有一個(gè) spider.sh 來(lái)獲下載任意 URL 到臨時(shí)目錄:

#!/usr/bin/env bash
curl $url > $TMPDIR/$RANDOM.html

我們需要將當(dāng)前腳本中的 url 傳遞給spider.sh:

export url=http://harttle.com
bash ./spider.sh
# 等價(jià)于(如果該文件有可執(zhí)行權(quán)限的話)
./spider.sh

值得注意的是export只會(huì)在子進(jìn)程中創(chuàng)建變量的副本,即spider.sh對(duì)它的改動(dòng)不會(huì)體現(xiàn)在當(dāng)前進(jìn)程。

在當(dāng)前進(jìn)程執(zhí)行腳本

使用 source 或 . 內(nèi)建命令可以在當(dāng)前進(jìn)程執(zhí)行另一個(gè)腳本,因此當(dāng)前上下文的變量對(duì)該腳本是可見(jiàn)的。

url=http://harttle.com

source ./spider.sh
# 等價(jià)于
. ./spider.sh

臨時(shí)設(shè)置環(huán)境變量

根據(jù) Shell 語(yǔ)法,在一個(gè)簡(jiǎn)單命令前可以包含任意個(gè)賦值語(yǔ)句。這些變量賦值將會(huì)在執(zhí)行命令前展開(kāi),等效于臨時(shí)的環(huán)境變量。

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. – Simple Commands, Shell Commands

例如下面命令可以把url變量傳遞給spider.sh:

url=http://harttle.com bash ./spider.sh

這是一條 簡(jiǎn)單命令,下面的多條命令或 組合命令:

url=http://harttle.com; bash ./spider.sh   # 兩條命令,只作用于當(dāng)前進(jìn)程
url=http://harttle.com  bash ./spider.sh  # 組合命令,只作用于當(dāng)前進(jìn)程
export url=http://harttle.com; bash ./spider.sh # 兩條命令,作用于父子進(jìn)程

簡(jiǎn)單命令中的變量賦值也不作用于當(dāng)前進(jìn)程。例如下面的代碼將會(huì)輸出空行:

url=http://harttle.com echo $url

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • linux shell自定義函數(shù)(定義、返回值、變量作用域)介紹
  • linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)

標(biāo)簽:昌都 臨沂 贛州 海北 撫州 烏蘭察布 連云港 廣東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell中變量作用域的介紹與使用命令》,本文關(guān)鍵詞  Shell,中,變量,作用域,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Shell中變量作用域的介紹與使用命令》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Shell中變量作用域的介紹與使用命令的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章