if
.. elif
.. else
só acionará a cláusula uma . elif
é a abreviatura de "else if", por isso, como else
, depende de as verificações anteriores não serem ativadas.
Se você quiser avaliar cada condição separadamente para que mais de uma possa ser chamada, cada uma delas precisa ser sua própria if
. Também poderíamos eliminar o else
(que sempre será chamado):
#!/bin/bash
ico="1";
if [[ $ico =~ ^-?[0-9]+$ ]]; then
wget -P $HOME/Downloads/ http://www.google.com/favicon.ico
fi
if [[ $ico -eq 1 ]]; then
wget -P $HOME/Downloads/ http://www.cnet.com/favicon.ico
fi
if [[ $ico -eq 3 ]]; then
wget -P $HOME/Downloads/ https://www.facebook.com/favicon.ico
fi
wget -P $HOME/Downloads/ https://www.twitter.com/favicon.ico
Na reflexão, você pode querer algo assim:
#!/bin/bash
ico="1";
if [[ $ico =~ ^-?[0-9]+$ ]]; then
if [[ $ico -eq 1 ]]; then
wget -P $HOME/Downloads/ http://www.cnet.com/favicon.ico
elif [[ $ico -eq 3 ]]; then
wget -P $HOME/Downloads/ https://www.facebook.com/favicon.ico
else
wget -P $HOME/Downloads/ http://www.google.com/favicon.ico
fi
else
wget -P $HOME/Downloads/ https://www.twitter.com/favicon.ico
fi
Primeiro, verifica se a entrada é um numeral. Se for e é 1, cnet. Se é 2, facebook. Se é outro número, google. Se não for um número, twitter.
É um pouco estranho tentar inferir o que você quer de um problema abstrato como esse, mas isso faz mais sentido para mim.