regexp não terminado e nova linha inesperada

0

recebi um erro quando o comando awk foi executado

echo $(awk 'BEGIN {printf "%.2f\n",'$sizes'/1073741824}')GB >> $MAINS/logs/bks1

que é para alterar números inteiros em um tamanho (GB). Mas eu tenho um erro como este

awk: cmd. line:1: BEGIN {printf "%.2f GB\n",/1073741824}
awk: cmd. line:1:                            ^ unterminated regexp
awk: cmd. line:1: BEGIN {printf "%.2f GB\n",/1073741824}
awk: cmd. line:1:                                       ^ unexpected newline or end of string

Às vezes funciona bem

Devo adicionar dormir antes que o comando seja executado? Obrigado a todos, agradeço seu tempo e ajuda.

    
por Nicky Puff 22.03.2018 / 04:30

1 resposta

0

Quando a variável sizes estiver vazia, ela será substituída pela string vazia, como esperado. E na parte relevante do script awk espera que qualquer cadeia começando com uma barra seja o início de uma expressão regular, mas é apenas uma expressão regular válida depois de ser finalizada por outra barra. Você precisa ter certeza de que sizes não está vazio para o script funcionar.

set -o nounset para ser notificado de variáveis indefinidas (não vazias) nos seus scripts, e combine com -o errexit para parar o script em tais erros.

    
por 22.03.2018 / 05:26