Выполнение нескольких команд оболочки внутри скрипта Perl - PullRequest
1 голос
/ 13 марта 2011

Я использую команду System() для выполнения команды оболочки из сценария perl, но мне нужно выполнить несколько команд одну за другой.Как мы можем сделать это в одной строке.

То, что я делаю в настоящее время:

$cmd = "ls -l cd /home/xyz ls -l" , 
System($cmd)

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

1 Ответ

5 голосов
/ 13 марта 2011

Вам нужно сделать то же самое, что вы сделали бы в своей оболочке. Для вашей тестовой команды это будет выглядеть примерно так:

$cmd = "ls -l ; cd /home/xyz ; ls -l";
system($cmd);

Или еще лучше, как предложено BadFileMagic :

$cmd = "ls -l ; cd /home/xyz && ls -l";

Таким образом, вторая ls не будет выполнена, если cd завершится неудачей.

...