Shell向Perl指令碼中傳遞變數的方法

2021-04-24 07:58:43 字數 740 閱讀 6598

方法一:

in shell using export  to output a variable, and in perl using special variable %env to get shell's variables.

i.e.:

--- shell box---

$ /bin/ksh

# export x=foo

# perl -e 'print $env'

-------------

方法二:

象c一樣,perl也有儲存命令列引數的陣列@argv,可以用來分別處理各個命令列引數;與c不同的是,$argv[0]是第乙個引數,而不是程式名本身。

$var = $argv[0]; # 第乙個引數

$numargs = @argv; # 引數的個數

perl中,<>操作符實際上是對陣列@argv的隱含的引用,其工作原理為:

1、當perl直譯器第一次看到<>時,開啟以$argv[0]為檔名的檔案;

2、執行動作shift(@argv); 即把陣列@argv的元素向前移動乙個,其元素數量即減少了乙個。

3、<>操作符讀取在第一步開啟的檔案中的所有行。

4、讀完後,直譯器回到第一步重複。

例:@argv = ("myfile1", "myfile2"); #實際上由命令列引數賦值

while ($line = <>)  

將把檔案myfile1和myfile2的內容列印出來。

Shell向Perl指令碼中傳遞變數的方法

方法一 in shell using export to output a variable,and in perl using special variable env to get shell s variables.i.e.shell box bin ksh export x foo perl...

Shell向Perl指令碼中傳遞變數的方法

方法一 in shell using exportto output a variable,andin perl using special variable env to get shell s variables.i.e.shell box bin ksh export x foo perl e...

向指令碼傳遞引數

start 在需要的時候我們可以向 perl 指令碼傳遞引數,perl 會自動將所有的引數放到陣列 argv 中,下面是乙個簡單的例子。usr bin perl use strict if argv 1 my name argv print welcome name n unix 的 cat 命令可...