如何在perl脚本中使用shell命令?

时间:2012-02-27 10:48:33

标签: perl shell

任何人都可以告诉我,如何在Perl脚本中使用shell命令结果?

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

脚本输出

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

我想将dir更改为/ var / home / user1 / htdocs

3 个答案:

答案 0 :(得分:4)

$whoami包含结束符\n,这会导致您的命令字符串如下所示:

cd /var/home/user1
/htdocs

您应该使用chomp$whoami删除尾随换行符:

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

答案 1 :(得分:3)

这可以在没有炮轰的情况下完成:

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

答案 2 :(得分:1)

#!/usr/bin/perl

$whoiami=`whoami`;

print "$whoiami";

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

print $whoiami;