команда rsync работает в Bash, но зависает при вызове от Perl

У меня есть команда rsync, которая хорошо работает или из командной строки Bash или из сценария Bash.

Команда: rsync -qtz user@hostname:/tmp/p /tmp

Когда я выполняю команду, она копирует файл и работает в меньше, чем секунда.

Если я поместил команду в сценарий Perl, сценарий зависает, и я имею к Ctrl-C для уничтожения его.

Сценарий Perl - просто это:

system("rsync -qtz user@hostname:/tmp/p /tmp");

Что могло идти не так, как надо? Другие команды (как mv и gzip) хорошо работают в сценарии Perl. Я пытался указать the4 полный путь к/usr/bin/rsync, но он не помогает.

0
задан 20.02.2011, 03:44

1 ответ

@ символ является специальными внутренними двойными заключенными в кавычки строками в Perl.

Это пытается найти массив названным @hostname и разверните его. @hostname не установлен, таким образом, это расширяется до rsync -qtz user:/tmp/p /tmp.

Попробовать

system("rsync -qtz user\@hostname:/tmp/p /tmp");

вместо этого.

1
ответ дан 24.11.2019, 12:08

Теги

Похожие вопросы