任何人都可以告诉我,如何在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
答案 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;