Esta é a minha read
operação atual que funciona bem, mas gostaria de encurtar:
echo "Please save your DB root password:" && read -s dbrp
echo "Please save your DB user password:" && read -s dbup
Foi assim que tentei encurtá-lo e falhei (o prompt é importante para mim):
echo "Please save your DB passwords (root, then non-root):" && read -s dbrp && echo "\n" && read -s dbup
Já está em uma linha como eu desejava, mas não me sinto confortável com isso porque:
- Existem dois
read -s
comandos em vez de apenas um. - Devo usar
echo /n
para quebrar a linha enquanto gostaria de quebrar sem isso.
Algo poderia ser feito para melhorar isso?
Atualizar
Eu cometi um erro ao usar echo
lá (além de adicionar \n
. Como read
tem sua própria opção de adição de prompt:
read -sp "What's your DB root password?" dbrp
read -sp "What's your DB user password?" dbup
Se você deseja alterar o nome de suas variáveis e tornar seu código específico para bash (
-s
está disponível emzsh
ebash
;-p
para prompt ébash
apenas,zsh
usaread 'var?prompt'
como inksh
para isso), acho que o seguinte é elegante e direto:O resultado deve ter suas senhas em variáveis
$dbr_user
e$dbr_root
.Observe que você precisa de
-r
eIFS=
para permitir que o usuário tenha barras invertidas ou espaços iniciais/finais ou tabulações em sua senha .O
zsh
equivalente: