Retorno do comando awk não encontrado no desktop Ubuntu, mas funciona bem no Centos

Retorno do comando awk não encontrado no desktop Ubuntu, mas funciona bem no Centos

Eu crio test.sh para ler um arquivo com conteúdo

item1:return1
item2:return2
...
item10:return10

conteúdo test.sh

VAR1=$1
VAR2= `grep "^${VAR1}:" /home/path/file | awk '{print $2;}'`

echo "${VAR2}";

teste de corrida

sh test.sh item1

retornar

: not found test.sh: 
: not found test.sh: 

Quando executo o mesmo no Centos. retornar

return1

O que há de errado com o comando awk?

Responder1

Não há nada de errado com o comando awk. Seu problema test.shnão pode ser encontrado, conforme mostra a mensagem. O CentOS provavelmente define seu caminho para a variável PATH.

Execute-o como sh ./test.sh item1(presumo que test.sh esteja em seu diretório atual)

Editar: eu deveria ter prestado mais atenção ao script, :no grep é o problema Isso funciona

VAR1=$1
VAR2=`grep "${VAR1}\:" file | awk '{print $2}'`
echo "${VAR2}";

Porém, o awk por padrão não reconhece :como separador, tive que usar

item1: return1
item2: return2

Não tenho ideia de como poderia funcionar no servidor ou no centos sem essa mudança

informação relacionada