Tente isto:
variable="3 things"
if echo "$variable" | grep "^[0-9]\{1,\}" >/dev/null 2>&1 #if $variable begins with [0-9]
then
echo "$variable" | sed 's/ .*$//'
else
echo "0"
fi
Ao usar a notação $(...)
, você está executando o comando interno e colocando sua saída em seu lugar. A diretiva if
executa a saída disso e vê se ela é bem-sucedida. Nesse caso, você realmente quer testar o sucesso do comando colocado dentro do $(...)
. Também é bom citar variáveis quando usado.