日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

shell设置系统环境变量的问题

發(fā)布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell设置系统环境变量的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
業(yè)務(wù)場景: 我在一個bash腳本中修改了PATH變量的內(nèi)容,并將其保存到/etc/profile文件中,同時執(zhí)行了 source /etc/profile 但是當(dāng)腳本退出時,我發(fā)現(xiàn)PATH變量還是沒有修改生效,但是,如果我在命令行再直接執(zhí)行 source /etc/profile
才發(fā)現(xiàn)PATH生效了。 請問,這是什么原因呢?

經(jīng)過參閱《鳥哥的私房菜》中的相關(guān)內(nèi)容p.307,export和source,總結(jié)的知識點是: 1.自定義變量和環(huán)境變量的區(qū)別,兩者的差異就在于是否會被子進(jìn)程所繼續(xù)引用 2.當(dāng)你登陸Linux并取得一個bash之后,你的bash就是一個獨立的進(jìn)程,接下來你在這個bash下面執(zhí)行的任何命令都是由這個bash所衍生的子進(jìn)程, 3.子進(jìn)程僅會繼承父進(jìn)程的環(huán)境變量,但不會繼承父進(jìn)程的自定義變量,當(dāng)子進(jìn)程返回時,父進(jìn)程的自定義變量依然有效 4.要讓子進(jìn)程繼承父進(jìn)程的自定義變量,需要將自定義變量變成環(huán)境變量,使用export命令 5.source命令即點(.)命令。source命令是在當(dāng)前進(jìn)程中執(zhí)行參數(shù)文件中的各個命令,而不是另起子進(jìn)程(或sub-shell)。 exec命令也不產(chǎn)生新的子進(jìn)程。那么exec與source的區(qū)別是什么呢? exec命令在執(zhí)行時會把當(dāng)前的shell?process關(guān)閉,然后換到后面的命令繼續(xù)執(zhí)行。
shell中source和sh?script的區(qū)別 有兩種方法執(zhí)行shell?scripts,一種是新產(chǎn)生一個shell,然后執(zhí)行相應(yīng)的shell?scripts;一種是在當(dāng)前shell下執(zhí)行,不再啟用其他shell。 新產(chǎn)生一個shell然后再執(zhí)行scripts的方法是在scripts文件開頭加入以下語句 #!/bin/sh 一般的script文件(.sh)即是這種用法。這種方法先啟用新的sub-shell(新的子進(jìn)程),然后在其下執(zhí)行命令。 另外一種方法就是上面說過的source命令,不再產(chǎn)生新的shell,而在當(dāng)前shell下執(zhí)行一切命令。
問題分析: 環(huán)境變量(傳給子進(jìn)程的變量,遺傳性是本地變量和環(huán)境變量的根本區(qū)別)只能單向從父進(jìn)程傳給子進(jìn)程。不管子進(jìn)程的環(huán)境變量如何變化,都不會影響父進(jìn)程的環(huán)境變量。 你在shell中調(diào)用的腳本,然后在腳本中調(diào)用source,設(shè)置的環(huán)境變量只對當(dāng)前的shell腳本所在進(jìn)程及由這個腳本fork的子進(jìn)程中有效 然后你在shell中做其他操作的時候,之后設(shè)置的環(huán)境變量就不起作用了。
網(wǎng)上查到的同樣的問題: export命令為什么在shell腳本中執(zhí)行不生效? 在服務(wù)器上執(zhí)行如下命令是可以生效的,但是我把語句放在腳本里,如test.sh,然后我執(zhí)行sh?test.sh就不生效了,不知道神馬原因? export?http_proxy=http://192.168.1.105:8080
解決方法: source?test.sh 不要直接采用 sh test.sh
參考文獻(xiàn) [1].http://bbs.chinaunix.net/thread-2323631-1-1.html?這個提問和我遇到的問題是一樣的,期待解決方案 [2].http://www.oschina.net/question/147332_131625? 同樣的問題 [3].http://blog.163.com/shi_shun/blog/static/237078492011112643525868/? sh和source 腳本的區(qū)別

總結(jié)

以上是生活随笔為你收集整理的shell设置系统环境变量的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。