shell腳本引用外部變量的兩種方法
本地變量只能在當(dāng)前bash進(jìn)程中有效,對(duì)當(dāng)前shell之外的其它進(jìn)程,包括子進(jìn)程均無(wú)效。而啟動(dòng)腳本實(shí)際就是開(kāi)啟一個(gè)子進(jìn)程執(zhí)行命令,所以,在腳本里就無(wú)法引用父進(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)和斜杠之間必須有空格,若沒(méi)有空格就是直接執(zhí)行腳本,是不一樣的),這種方式不會(huì)開(kāi)啟子進(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 #子腳本,或者說(shuō)被調(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)腳本可以沒(méi)有執(zhí)行權(quán)限,調(diào)用腳本必須有可執(zhí)行權(quán)限。
- 上述例子中是變量的引用,函數(shù)的引用也是一樣的流程。
到此這篇關(guān)于shell腳本引用外部變量的兩種方法的文章就介紹到這了,更多相關(guān)shell 引用外部變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Bash Shell獲取文件名和目錄名的簡(jiǎn)單方法
這篇文章主要介紹了使用Bash Shell獲取文件名和目錄名的簡(jiǎn)單方法,解析路徑是通常用Shell來(lái)實(shí)現(xiàn)的基本功能之一,需要的朋友可以參考下2015-07-07Linux Shell 自動(dòng)交互功能實(shí)現(xiàn)
本文主要介紹了Linux Shell 自動(dòng)交互功能實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Bash中分支控制Case語(yǔ)句的實(shí)現(xiàn)
case語(yǔ)句通常用于簡(jiǎn)化具有多種不同選擇的復(fù)雜條件語(yǔ)句,使?Bash?腳本更具可讀性,在本文中我們將深入探討case語(yǔ)句的使用方法和一些實(shí)用的例子,感興趣的可以了解一下2024-01-01shell腳本結(jié)合iptables防端口掃描的實(shí)現(xiàn)
這篇文章主要介紹了shell腳本結(jié)合iptables防端口掃描的實(shí)現(xiàn),中間使用了inotify-tools工具,需要的朋友可以參考下2014-05-05Linux下/var/run/目錄下的pid文件詳解及pid文件作用
linux系統(tǒng)中/var/run/目錄下的*.pid文件是一個(gè)文本文件,其內(nèi)容只有一行,即某個(gè)進(jìn)程的PID。這篇文章主要介紹了Linux下/var/run/目錄下的pid文件詳解及pid文件作用,需要的朋友可以參考下2018-04-04