Как использовать результат команды оболочки в сценарии perl? - PullRequest
3 голосов
/ 27 февраля 2012

Может кто-нибудь показать мне, как использовать результат команды оболочки в скрипте Perl?

#!/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

Я хочу изменить каталог на / var / home / user1/ HTDOCS

Ответы [ 3 ]

4 голосов
/ 27 февраля 2012

$whoami содержит символ конца строки \n, в результате чего ваша командная строка выглядит следующим образом:

cd /var/home/user1
/htdocs

Вы должны использовать chomp, чтобы удалить завершающий перевод строки из $whoami:

my $whoami = `whoami`;
chomp $whoami;
3 голосов
/ 27 февраля 2012

Это может быть выполнено без выстрела:

#!perl
my $dir = '/home/'.getlogin().'/htdocs';
chdir $dir;
2 голосов
/ 27 февраля 2012
#!/usr/bin/perl

$whoiami=`whoami`;

print "$whoiami";

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

print $whoiami;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...