O comando simples antes do pipe em:
OPTIONS=$VERSIONS | awk -F'[,]' '{print $1}'
define OPTIONS
para $VERSIONS
. Como não há nenhum nome de utilitário real, o comando é simplesmente uma atribuição e, portanto, não produz saída. Portanto, nada é canalizado para awk
e, consequentemente, awk
não faz nada. (E mesmo se fizesse alguma coisa, não faria isso para $OPTIONS
.
Ainda pior, o pipe garante que tanto o comando antes quanto o comando após sejam executados em subshells. Portanto, OPTIONS
não está definido no shell que contém o comando composto.
Eu presumo que o que você queria era algo assim:
OPTIONS=$(/usr/libexec/somebin -V | cut -f1 -d,)
ou talvez
VERSIONS=$(/usr/libexec/somebin -V)
OPTIONS=$(echo "$VERSIONS" | cut -f1 -d,)
em que o comando cut
faz exatamente a mesma coisa que sua invocação de awk
.
Mas nem isso nem seu comando awk filtrarão as linhas com "algum texto", então talvez você precise de um filtro real, talvez algo assim:
VERSIONS=$(/usr/libexec/somebin -V | grep ,)
OPTIONS=$(echo "$VERSIONS" | cut -f1 -d,)