Я пытаюсь написать сценарий bash, который позволит пользователю ввести пароль, а затем передать stdin (либо через команды терминала, либо через файл) в openssl enc, чтобы зашифровать его построчно, используя это пароль, а затем, наконец, передать его на внешний TCP-сервер.
Это то, что у меня есть до сих пор, и в основном это работает:
#!/bin/bash
printf "What is your encryption
password?\n"
read -s password </dev/tty
while read line; do echo "$line" | openssl enc -aes-256-cbc -base64 -pass pass:$password -e; done > >(openssl s_client -quiet -connect localhost:3001)
Вы запускаете это через файл cat | script. sh.
Проблема, с которой я столкнулся, заключается в том, что файл содержит кавычки или специальные символы и прерывает эхо.
Есть ли способ обойти это?