亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

本地變量只能在當(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)文章

  • linux 下同名符號(hào)沖突問(wèn)題解決方案

    linux 下同名符號(hào)沖突問(wèn)題解決方案

    這篇文章主要介紹了 linux 下同名符號(hào)沖突問(wèn)題解決方案的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 使用Bash Shell獲取文件名和目錄名的簡(jiǎn)單方法

    使用Bash Shell獲取文件名和目錄名的簡(jiǎn)單方法

    這篇文章主要介紹了使用Bash Shell獲取文件名和目錄名的簡(jiǎn)單方法,解析路徑是通常用Shell來(lái)實(shí)現(xiàn)的基本功能之一,需要的朋友可以參考下
    2015-07-07
  • Linux Shell 自動(dòng)交互功能實(shí)現(xiàn)

    Linux 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-08
  • Bash中分支控制Case語(yǔ)句的實(shí)現(xiàn)

    Bash中分支控制Case語(yǔ)句的實(shí)現(xiàn)

    case語(yǔ)句通常用于簡(jiǎn)化具有多種不同選擇的復(fù)雜條件語(yǔ)句,使?Bash?腳本更具可讀性,在本文中我們將深入探討case語(yǔ)句的使用方法和一些實(shí)用的例子,感興趣的可以了解一下
    2024-01-01
  • shell腳本自動(dòng)安裝jdk的方法示例

    shell腳本自動(dòng)安裝jdk的方法示例

    這篇文章主要介紹了shell腳本自動(dòng)安裝jdk的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • shell腳本結(jié)合iptables防端口掃描的實(shí)現(xiàn)

    shell腳本結(jié)合iptables防端口掃描的實(shí)現(xiàn)

    這篇文章主要介紹了shell腳本結(jié)合iptables防端口掃描的實(shí)現(xiàn),中間使用了inotify-tools工具,需要的朋友可以參考下
    2014-05-05
  • Linux中 sed 和 awk的用法詳解

    Linux中 sed 和 awk的用法詳解

    sed是一個(gè)很好的文件處理工具,本身是一個(gè)管道命令,awk是一個(gè)強(qiáng)大的文本分析工具,相對(duì)于grep的查找,sed的編輯,awk在其對(duì)數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大 ,本文重點(diǎn)給大家介紹Linux中 sed 和 awk的用法,一起看看吧
    2017-07-07
  • Linux下/var/run/目錄下的pid文件詳解及pid文件作用

    Linux下/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
  • Shell正則表達(dá)式驗(yàn)證IP地址

    Shell正則表達(dá)式驗(yàn)證IP地址

    這篇文章主要介紹了Shell正則表達(dá)式驗(yàn)證IP地址,本文給出了多個(gè)方法,并分別給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05
  • 詳細(xì)介紹Linux IO

    詳細(xì)介紹Linux IO

    這篇文章主要介紹了Linux IO,對(duì)Linux感興趣的同學(xué),可以參考下
    2021-04-04

最新評(píng)論