shell脚本之变量的作用域
可把變量提升為全局環(huán)境變量,可供其他Shell程序使用
場(chǎng)景1:
a.定義一個(gè)變量C,可以打印出來(lái)
[root@mylinux2 shell]# C=30 [root@mylinux2 shell]# echo $C 30b.在腳本文件中打印這個(gè)變量C
執(zhí)行腳本,發(fā)現(xiàn)不能拿到C的值
記住 : 用戶登錄之后開啟一個(gè)解釋器bash(一號(hào));當(dāng)啟動(dòng)一個(gè)腳本文件:重新啟動(dòng)一個(gè)bash(二號(hào))去執(zhí)行腳本,二號(hào)bash是一號(hào)子bash
而上面的代碼是在一號(hào)bash下運(yùn)行的
執(zhí)行腳本bash test3.sh是在二號(hào)bash下運(yùn)行的
場(chǎng)景2
明確告知:環(huán)境變量TEST_B是在用戶環(huán)境中定義的
一號(hào)bash下可以獲得TEST_B的值
把TEST_B寫入到腳本中,執(zhí)行腳本也可以獲得TEST_B的值(二號(hào)bash也可以獲得TEST_B的值)
[root@mylinux2 shell]# bash test3.sh 10 hello zl666總而言之:在我用戶下定義的環(huán)境變量,不管是子bash還是父bash,當(dāng)前用戶都可以拿到
另一個(gè)用戶想拿環(huán)境變量TEST_B?拿不到
場(chǎng)景3
案例:
a、在第二個(gè)窗口中定義一個(gè)環(huán)境變量
b、在第一個(gè)窗口中拿TEST_F,拿不到
[root@mylinux2 shell]# echo $TEST_Fc、在第一個(gè)窗口中的test3.sh中寫入變量
echo $TEST_F
運(yùn)行腳本,也拿不到值
d、但是在第二個(gè)窗口中能拿到值
所以:在第二個(gè)服務(wù)器中的定義的環(huán)境變量TEST_F,在第一個(gè)服務(wù)器中拿不到;
原因:臨時(shí)的用戶環(huán)境變量只作用到當(dāng)前bash及它的子bash。
注意:兩個(gè)mylinux2服務(wù)器中的bash是兩個(gè)不同的bash,是同級(jí)的bash,
總結(jié)
以上是生活随笔為你收集整理的shell脚本之变量的作用域的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux安装python-3.8
- 下一篇: Linux中如何安装MySQL详细步骤