У меня есть perl-скрипт, как показано ниже, где я хочу получить доступ к сетевому пути на удаленной машине Windows с машины Linux, используя rsh.
$cmd = "rsh -l $username $host \"pushd \\\\network\\path\\to\\the\\directory && dir\"";
print $cmd, "\n";
print qx($cmd);
Когда я запускаю сценарий, третья строка выводит вывод The system cannot find the path specified.
Однако, если я запускаю команду, напечатанную второй строкой, непосредственно из терминала, она работает нормально.
Я не могу понять, почему скрипт не работает. Если команда работает из терминала, она должна работать и с использованием qx().
$cmd = "rsh ...."
, вам может потребоваться добавить еще один уровень экранирования, поскольку двойные кавычки интерпретируют\\path
как\path
. - person Steffen Ullrich   schedule 18.06.2019$cmd
), с терминала все работает нормально. Но третья строка (т.е.qx($cmd)
) дает ошибку, как указано в вопросе. Я уже использовал четыре обратных слэша ` \\\\ ` в начале пути и выделил все остальные обратные слэши как ` \\ `. - person him   schedule 18.06.2019