bash команда для выбора варианта установки № 2 в показанном скрипте - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь создать сценарий , который может установить (автоматизировать) veracrypt в системе CentOS7 .

Загруженный файл veracrypt поставляется в виде файла .bz2 (veracrypt-1.23-setup.tar.bz2). После разархивирования файла bzip bzip2 -dk veracrypt-1.23-setup.tar.bz2 я затем разархивирую полученный файл .tar tar -xf /home/$USER/veracrypt-1.23-setup.tar. На этом этапе я могу (если я) вручную вызвать скрипт veracrypt ./veracrypt-1.23-setup-gui-x64 из терминала bash. Мне представляется следующее приглашение установщика veracrypt.

enter image description here

Приглашение установщика veracrypt ищет пользователя, чтобы нажать 1 или 2 на клавиатуре, а затем Enter (который я вручную набрал в окне подсказки, показанном ниже для целей визуализации), прежде чем снова нажать Enter, чтобы перейти к лицензии. соглашение. enter image description here

Я ищу команду bash, которая просто выберет (или напечатает) номер 2, а затем введет от моего имени, чтобы мне не нужно вообще не взаимодействовать с подсказкой.

Я попробовал следующие команды в моем скрипте безрезультатно:

    #!/bin/bash
    cp ./veracrypt-1.23-setup.tar.bz2 /home/$USER
    cd /home/$USER
    bzip2 -dk veracrypt-1.23-setup.tar.bz2
    tar -xf /home/$USER/veracrypt-1.23-setup.tar
    echo -n '2' | ./veracrypt-1.23-setup-gui-x64

И

    #!/bin/bash
    cp ./veracrypt-1.23-setup.tar.bz2 /home/$USER
    cd /home/$USER
    bzip2 -dk veracrypt-1.23-setup.tar.bz2
    tar -xf /home/$USER/veracrypt-1.23-setup.tar
    ./veracrypt-1.23-setup-gui-x64 2

Если Я могу найти команду для передачи ввода в сценарий. Я почти уверен, что смогу изменить эту команду для прохождения остальной части лицензионного соглашения.

Заранее спасибо за поддержку.

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете использовать Здесь документ , см. man bash в разделе Здесь документы . Это позволит вам перенаправить ввод в установщик veracrypt, как если бы он исходил из stdin. Вы можете добавить к своему сценарию:

./veracrypt-1.23-setup-gui-x64 << EOF
2
EOF

И это должно позаботиться о вас. Дайте мне знать, если у вас есть какие-либо проблемы или дополнительные вопросы. (вы можете изменить символ heredo c с EOF на все, что вам нравится, если это не противоречит) Кроме того, не делайте отступ heredo c, не видя страницу руководства по использованию дефиса (хотя я не буду рекомендуем делать это, так как вы должны использовать символ tab, поскольку spaces не подходит.

Другой вариант - просто передать 2 установщику, например,

echo "2" | ./veracrypt-1.23-setup-gui-x64

(не включайте -n)

Оба выполнения sh одно и то же. Ключ 2 должен быть доступен установщику в stdin, а не в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...