Кажется, я не могу удалить новую строку из вывода, который я получаю, выполняя команду на сервере Linux, и пробовал несколько разных способов.
вот мой код 1-я попытка
$location = `curl -m 5 -sI 216.58.219.206 | grep "Location:"`;
chomp ($location);
print "before\n";
print "$location";
print "after\n";
вывод, не работает, печатается с новой строки.
before
Location: http://www.google.com/
after
Вторая попытка
$location = `curl -m 5 -sI 216.58.219.206 | grep "Location:"`;
$location =~ s/\n//g;
print "before\n";
print "$location";
print "after\n";
Выход, все еще не работает.
before
Location: http://www.google.com/
after
Необработанный вывод оболочки
[user@localhost dir]# curl -m 5 -sI 216.58.219.206 | grep "Location:"
Location: http://www.google.com/
[user@localhost dir]#
Тоже не работает, я все еще вижу новую строку. Я что-то упускаю?
curl -m 5 -sI 216.58.219.206 | grep "Location:"
при запуске вручную в оболочке и ваш ожидаемый результат. Кроме того, убедитесь, что код, который вы включили, работает и воспроизводит вашу проблему... как указал Авинаш Радж в уже удаленном комментарии, ваш второй фрагмент использует$cmd
, но в остальной части кода нет переменной$cmd
. - person ThisSuitIsBlackNot   schedule 14.07.2015$\
или передали-l
наperl
(в командной строке или строке shebang)? - person ikegami   schedule 14.07.2015