最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell腳本引用外部變量的兩種方法

 更新時(shí)間:2023年05月06日 09:47:08   投稿:zx  
本文主要介紹了shell腳本引用外部變量的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本地變量只能在當(dāng)前bash進(jìn)程中有效,對(duì)當(dāng)前shell之外的其它進(jìn)程,包括子進(jìn)程均無效。而啟動(dòng)腳本實(shí)際就是開啟一個(gè)子進(jìn)程執(zhí)行命令,所以,在腳本里就無法引用父進(jìn)程上的本地變量。如下,

引用外部變量失?。?/p>

[root@centos7 test]#echo $var
yes
[root@centos7 test]#bash test.sh?
[root@centos7 test]#

那如何在腳本中引用外部變量呢,有兩種方法可以實(shí)現(xiàn)

第一種:把變量設(shè)置成環(huán)境變量

[root@centos7 test]#export var
[root@centos7 test]#bash test.sh 
yes
[root@centos7 test]#

第二種:用source方式啟動(dòng)腳本(或者用. /path/name.sh;注意點(diǎn)號(hào)和斜杠之間必須有空格,若沒有空格就是直接執(zhí)行腳本,是不一樣的),這種方式不會(huì)開啟子進(jìn)程,而是把腳本加載到當(dāng)前進(jìn)程中執(zhí)行,所以也就能引用當(dāng)前進(jìn)程中的本地變量了。

[root@centos7 test]#newvar="no"
[root@centos7 test]#source test.sh 
no
[root@centos7 test]#. test.sh 
no
[root@centos7 test]#

舉例

假設(shè)有如下兩個(gè)腳本:

main.sh           #主腳本
subscripts.sh     #子腳本,或者說被調(diào)腳本 

subscripts.sh 腳本內(nèi)容如下:

#! /bin/bash ?
string="Hello,World! \n"

main.sh 腳本(引用 subscripts.sh 腳本的變量)內(nèi)容如下:

#! /bin/bash ?
. ./subscripts.sh ?
echo -e ${string} ?
exit 0 ?

運(yùn)行 mian.sh 腳本輸出結(jié)果:

# chmod +x main.sh  
# ./main.sh  
Hello,World!

注意:

  • 被調(diào)腳本可以沒有執(zhí)行權(quán)限,調(diào)用腳本必須有可執(zhí)行權(quán)限。
  • 上述例子中是變量的引用,函數(shù)的引用也是一樣的流程。

 到此這篇關(guān)于shell腳本引用外部變量的兩種方法的文章就介紹到這了,更多相關(guān)shell 引用外部變量內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

万全县| 美姑县| 白沙| 沅江市| 手游| 杭锦后旗| 双辽市| 堆龙德庆县| 浦城县| 肥东县| 滦平县| 永川市| 长顺县| 资阳市| 鹤庆县| 景德镇市| 湘西| 彰武县| 香格里拉县| 广汉市| 六枝特区| 黔西| 嘉鱼县| 台前县| 抚松县| 襄樊市| 庄浪县| 屏山县| 长丰县| 天柱县| 库车县| 沐川县| 宜川县| 吉安县| 德安县| 荥经县| 灵石县| 福安市| 沙田区| 浦江县| 泽库县|