2012-10-16 251 views
0

我想在bash腳本中嵌入一個bash腳本。我想通過從perl腳本獲取一些變量來運行我的bash腳本。一旦它得到變量bash腳本接管並嘗試輸出在其中創建的文件。perl腳本中bash腳本的輸出

如何將perl腳本變量傳遞給我的bash腳本?

我不知道perl的,但是從我在谷歌閱讀,我可以嵌入我的bash腳本

system("get_files.cmd -yr ${year}"); 

在我的bash腳本是get_files.cmd

+0

是的,這就是它的工作原理。用'perl -e'我的$ year = 5來試試吧;系統(「get_files.cmd -yr $ {year}」);'' –

回答

0

我認爲,如果你通過它們作爲參數傳遞給您的bash腳本可能會更好。

Perl的電話:

system("get_files.cmd ${var1} ${var2}"); 

的bash腳本

var1="$1" 
var2="$2" 
... 

$1$2是在命令行(按順序)傳遞的參數。請注意,您可以使用$# bash變量來獲取傳遞的參數數量。

希望這有助於=)

0

Expect模塊實質上可以自動執行shell任務,例如運行腳本和傳遞perl變量。這樣的:

Use Expect; 

    # create an Expect object by spawning another process 
    my $exp = Expect->spawn($command, @params) 
    or die "Cannot spawn $command: $!\n"; 

http://search.cpan.org/~rgiersig/Expect-1.15/Expect.pod