-
Você não precisa canalizar o grep para o awk. tente isso:
HOST="$(awk -F= '/SERVER_NAME/ {print $2}' $HOME/env.ref)" PORT="$(awk -F= '/SERVER_PORT/ {print $2}' $HOME/env.ref)"
-
if / then / else é mais legível se você a) não desperdiçar uma linha em
then
eb) indentar as cláusulas. Além disso, você não precisa usar{...}
em torno de variáveis, a menos que haja uma possibilidade de ambigüidade. por exemplo.$HOSTPORT
é uma única variável chamada $ HOSTPORT, enquanto${HOST}${PORT}
é duas variáveis concatenadas sem nada entre elas. Finalmente, você esqueceu o$
on$PORT
.if [ "$HOST" -a "$PORT" ] ; then echo "Details extracted" else echo "Details not found" fi
E se tudo o que você vai fazer é apenas encontrar ou não ser encontrado, isso pode ser feito em uma linha:
[ "$HOST" -a "$PORT" ] && echo "Details extracted" || echo "Details not found"
Não há muito mais em seu script que possa ser melhorado muito. Simplesmente não há o suficiente lá. Dependendo de exatamente o que o resto do seu script está fazendo, pode ser melhor escrever a coisa toda em awk ou perl ou python ou algo assim ... mas é impossível saber sem uma descrição ou um script grande amostra.