2014-02-11 2 views
0

Channel channel=session.openChannel("exec"); ((ChannelExec)channel).setCommand("cd ../ && pwd && ls"); channel.connect(); channel.run();Java JSch -executing несколько команд UNIX

Вот как я могу использовать приведенный выше код, если мои команды из аргументов командной строки или, если они хранятся в переменной, как cmd1, Cmd2 и т.д. я попытался

((ChannelExec)channel).setCommand("cmd1 && cmd2 && cmd3");

переменной замены не происходит. Пожалуйста, помогите мне в этом

Спасибо, Prashanth

ответ

0

Переменные должны быть определены вне самого String, а не быть частью String

((ChannelExec)channel).setCommand(cmd1 + " && " + cmd2 " + " && " + cmd3); 
+0

ОК выше синтаксиса работает отлично. Но если iam выполняет некоторые коммиты в sudo режиме iam сталкиваются с проблемами: synta я использовал '((ChannelExec) канал) .setCommand (sudoformat + Cmd);' где sudoformat is sudo -S -u 'ims' -H -i – prashanth

+0

Какие проблемы? кажется, вам нужно пространство между этими двумя командами 'sudoformat +" "+ Cmd' – Reimeus

+0

iam пытается использовать этот канал (ChannelExec) .setCommand (sudoformat + Cmd2 +" && "+ Cmd2 +" && "+ Cmd3);' где sudoformat = «sudo -S -u» и «Cmd2 =« cd/home/xxx/xxx/»и Cmd =« pwd ». Ошибка: sudo:« cd: command not found ».cd не работает для sudo. Кроме того, кроме cd, другие команды работают, но Cmd2 и Cmd3 не выполняются в режиме sudo. – prashanth

Смежные вопросы