@xxxxc

Как выполнить несколько bash-команд за раз в Java?

Получается выполнить только одну команду за раз. Просто ls работает так как надо, но если перед указать путь, то не работает.
String[] cmd = {"/bin/bash", "-c", " echo  [password]| sudo -S cd / && ls"};
        Process pb = Runtime.getRuntime().exec(cmd);

Мож кто, что подскажет, как выполнять несколько команд?
  • Вопрос задан
  • 335 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Выполнить одну, проверить возвращаемое значение, если выполнено успешно, запустить вторую. То есть реализовать в коде именно то, что делает символ '&'.
Ответ написан
Комментировать
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
В Вашем случае Runtime.getRuntime().exec порождает аж 3 процесса разных и у каждого свое окружение.
Можете почитать это и соответсвенно вызвать единожды bash, получить getInputStream() и getOutputStream() а дальше скармливать нужные команды в стримы и читать из них.
А вообще рекомендую смотреть в сторону ProcessBuilder, с ним проще и удобнее.
Еще как вариант можно схитрить, сделать в %temp% скрипт, выполнить его, удалить этот скрипт после выполнения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
28 апр. 2024, в 20:09
9000 руб./за проект
28 апр. 2024, в 19:54
2000 руб./за проект
28 апр. 2024, в 19:54
5000 руб./за проект