2015-02-05 68 views
1

我有一個文件「TEMP.TXT」在UNIX外殼含有聲明環境變量外殼

var1=hello 
var2=ello 
var3=mello 
....and a long list 

,我們可以簡單地使用. temp.txt是使用所有的變量在文件中..

我們是否有Perl或任何變通的類似功能..

我想一個解決辦法

$ cat checkDOTfuctionOFunix.ksh 
#!/bin/ksh 
. /export/home/temp.txt 
#export 

/export/home/checkDOTfuncPRINTSinPERL.pl 

$ cat /export/home/checkDOTfuncPRINTSinPERL.pl 
#!/usr/local/bin/perl 

print "var1=$ENV{var1} \n\n var2=$ENV{var2} \n\n"; 

但這不會工作,除非我導出每個值可以用簡單的sed -e 's/^/export/完成,但我不喜歡這樣做。請幫助:)

回答

1
set -a 
. temp.txt 
set +a 
./checkDOTfuncPRINTSinPERL.pl 

與集-a作爲解釋here,所有變量賦值推動變量的環境變量。
Here一些doc到shell設置選項。

+0

乾杯!這工作..但有這樣一個命令在Perl中...我想避免從ksh shell腳本調用perl腳本,並直接在'checkDOTfuncPRINTSinPERL.pl'中使用'temp.txt'文件 –

0

現在可以在Perl中使用Env::Modify module

use Env::Modify 'source'; 
source("temp.txt");  # like saying . temp.txt in the shell 
.. env settings in temp.txt are now available to Perl ...