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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

perl脚本 linux,linux – 通过Perl脚本设置环境变量

發(fā)布時(shí)間:2023/12/9 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 perl脚本 linux,linux – 通过Perl脚本设置环境变量 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

您當(dāng)前的腳本甚至不會(huì)更改Perl腳本本身的環(huán)境變量.相反,它調(diào)用shell作為子進(jìn)程; shell進(jìn)程執(zhí)行. /root/.profile,僅在該shell進(jìn)程中更新$LD_LIBRARY_PATH.

您可以通過(guò)更新%ENV來(lái)更改Perl腳本中的環(huán)境變量(更確切地說(shuō),在運(yùn)行Perl腳本的過(guò)程中):

$ENV{LD_LIBRARY_PATH} = '/'; # or some more reasonable value

正如perldoc -v%ENV所說(shuō):

%ENV The hash %ENV contains your current environment. Setting a value in “ENV” changes the environment for any child processes you subsequently “fork()” off.

但那可能仍然不會(huì)做你想要的;它不會(huì)(也不會(huì))影響調(diào)用Perl腳本(您的交互式shell)的進(jìn)程的環(huán)境,只會(huì)影響Perl進(jìn)程本身及其調(diào)用的任何內(nèi)容.

我假設(shè)您要在當(dāng)前的交互式shell進(jìn)程中更新$LD_LIBRARY_PATH.為此,您可以讓Perl腳本打印一個(gè)將更新$LD_LIBRARY_PATH的shell命令.然后,您可以執(zhí)行它,然后評(píng)估其輸出,而不是簡(jiǎn)單地運(yùn)行Perl腳本.例如:

$cat env.pl

#!/usr/bin/perl

use strict;

use warnings;

print "export LD_LIBRARY_PATH=/\n";

$./env.pl # just prints the command without executing it

export LD_LIBRARY_PATH=/

$eval $(./env.pl) # executes the command in the current shell

$echo $LD_LIBRARY_PATH

/

$

這假設(shè)您當(dāng)前的shell是bash或類似的東西.

另一種選擇:修改%ENV后,您的Perl腳本可以調(diào)用另一個(gè)命令,甚至是新的交互式shell.新進(jìn)程將從Perl腳本繼承其環(huán)境.但這可能有點(diǎn)麻煩;例如,如果新進(jìn)程是交互式shell,則它不會(huì)從父shell繼承未導(dǎo)出的變量或歷史記錄.

(一個(gè)注意事項(xiàng),與您的問(wèn)題沒有直接關(guān)系:您正在使用/root/.profile這一事實(shí)意味著您正在以root身份執(zhí)行操作(超級(jí)用戶).這可能很危險(xiǎn).使用root帳戶(通過(guò)記錄進(jìn)入它或通過(guò)sudo僅用于實(shí)際需要root權(quán)限的東西.對(duì)于其他任何東西,使用個(gè)人用戶帳戶.

總結(jié)

以上是生活随笔為你收集整理的perl脚本 linux,linux – 通过Perl脚本设置环境变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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