2011-02-15 81 views
0

Perl代碼是看起來像 -如何使用perl腳本調用帶有可變參數的Shell腳本?

sub report_generation($) 
{ 

Shell_sh $ARGV[0] $conn_string $pm_dir/$FILE 

} 

$ARGV[0] -- > command line argument of perl script 

$conn_string --> used in perl script value define in perl script 

my $USR=$ARGV[1]; 
my $PSS=$ARGV[2]; 
my $INS=$ARGV[3]; 
my $conn_string=$USR."/".$PSS."\@".$INS; 


$pm_dir/$FILE --> want to give file name with file path "$pm_dir/$FILE" 


my $pm_dir="$ENV{'ABP_PM_ROOT'}/interfaces/output/report/$date"; 
my $FILE= 'FILE_NAME_'.$ARGV[0].'_'.get_timestamp().'.dat'; 


my $db_conn =DBI->connect('dbi:Oracle:'. $INS, $USR, $PSS, {AutoCommit => 0 })|| ExitProcess4 (1,$Function_Name ,$DBI::err, $DBI::errstr); 

report_generation($db_conn); 

回答

2

使用數組來保存參數,然後:

system @array; 

有許多優點於機制 - 值得注意的是,在調用它之前,您不必爲了防止shell解釋參數而轉義所有內容。