Exec () неправильно интерпретирует несколько команд - PullRequest
1 голос
/ 23 июля 2011

Я пытаюсь запустить две команды через exec (), но кажется, что команды не анализируются правильно.

У меня есть следующий код строки:

cmd = "scp -rp /mnt/backups/updateimage/images root@"+Arr.get(i)+":/usr/site/html ; ssh Arr.get(i)+" /usr/site/html/images/untar1.sh";

p = Runtime.getRuntime().exec(cmd);

Есть идеи, как мне отформатировать строку cmd, чтобы exec правильно ее интерпретировал? Спасибо

1 Ответ

2 голосов
/ 23 июля 2011

Выполнение нескольких команд, разделенных точкой с запятой, является функцией, предоставляемой оболочками, но вы выполняете команду scp.

Если вы хотите использовать оболочку, вы должны указать it в качестве команды, которую нужно выполнить, с фактическими командами в качестве аргументов.

...