Как пропустить приглашение пользователя при сохранении результата eval в переменной Bash? - PullRequest
0 голосов
/ 10 апреля 2020

Я хотел бы получить пароль из базы данных Keepass, используя keepassxc-cli в (резервном) сценарии оболочки. (В целях безопасности лучше не сохранять его в текстовом файле в моей файловой системе.) Необходимая команда выглядит следующим образом:

/Applications/KeePassXC.app/Contents/MacOS/keepassxc-cli show -a Password --key-file=/path/to/keyfile /path/to/database.kdbx "/path/to/entry/within/database"

При вводе этой команды вручную на моем терминале Мне выдается запрос на ввод моего мастер-пароля, а затем, после ввода этого мастер-пароля, указанный пароль показывается в следующей строке:

Enter password to unlock /path/to/database.kdbx: <me_entering_my_master_password>
TESTPASSWORD

Соответствующая часть моего скрипта выглядит следующим образом (посредством чего вышеупомянутая команда хранится в виде строки в KEEPASSCMD, и я просто повторяю для целей отладки):

REPOPASSWORD=$(eval $KEEPASSCMD)
echo $REPOPASSWORD

Однако при запуске сценария мне не предлагается вводить мастер-пароль, а вместо этого ничего отображается на терминале. После «слепого» ввода моего мастер-пароля показывается следующий вывод:

Enter password to unlock /path/to/database.kdbx: TESTPASSWORD

То есть приглашение сохраняется и в REPOPASSWORD. Можно ли как-то исключить приглашение, поэтому в REPOPASSWORD?

сохраняется только строка TESTPASSWORD?
...