2012-02-27 87 views
2

任何人都可以告訴我,如何在Perl腳本中使用shell命令結果?如何在perl腳本中使用shell命令?

#!/usr/bin/perl 
$whoami=`whoami`; 
system ('cd /var/home/'.$whoami.'/htdocs'); 
print $whoami; 

腳本輸出

[[email protected] _1]$ ./sys.pl 
sh: line 1: /htdocs: No such file or directory 
user1 

我想改變目錄到/ var /家庭/用戶1/htdocs目錄

+0

請注意,沒有一個解決方案(更正後的代碼)將改變你的程序的工作目錄! – pavel 2012-02-27 13:22:19

回答

1
#!/usr/bin/perl 

$whoiami=`whoami`; 

print "$whoiami"; 

chomp $whoiami; 
system ("cd /home/$whoiami/reports"); 

print $whoiami; 
+0

Thx,我忘記了chomp%) – user1194977 2012-02-27 12:29:12

4

$whoami包含底線字符\n,這會導致你的命令字符串的樣子:

cd /var/home/user1 
/htdocs 

您應該使用chomp$whoami刪除尾隨的換行符:

my $whoami = `whoami`; 
chomp $whoami; 
3

這是可以實現的W/O脫殼而出:

#!perl 
my $dir = '/home/'.getlogin().'/htdocs'; 
chdir $dir;