Eu tenho várias instruções de entrada do usuário como:
read -r -p "Do u want to include this step (y) or not (n) (y/N)"? answer
if [[ "$answer" =~ ^[Yy]$ ]]; then
...
fi
Estou procurando uma maneira de responder automaticamente sim a todas essas perguntas. Imagine uma sessão não interativa onde o usuário invoca o script com --yes
opção. Nenhuma stdin
entrada adicional.
A única maneira que posso pensar agora é adicionar outra condição em cada instrução if.
Alguma ideia?
Você pode usar yes(1) , o que não deve exigir nenhuma modificação no seu script.
Ele repetirá um palavrão especificado indefinidamente, se nenhum for especificado, ele será o padrão
y
.Se você usa
read
apenas para essas questões, e a variável é sempre chamadaanswer
, substituaread
:Eu colocaria toda a lógica de decisão em uma função, tanto verificando o modo automático quanto possivelmente consultando o usuário. Em seguida, chame apenas isso do nível principal em cada caso.
want_act
abaixo retorna true/falsy em si, não há necessidade de uma comparação de strings no nível principal e fica claro para o leitor o que a condição faz.