alternativa awk / nawk em SunOs e Linux

5

Eu tenho um script que basicamente verifica a versão do Java na caixa em que ele está sendo executado e faz qualquer coisa com base no número da versão.

Meu problema é que eu quero usar o mesmo comando nas caixas SunOs e Linux.

O mais perto que cheguei disso é ...

SunOs:

java -version 2>&1 | nawk -F '"' '/version/ {print $2}'

Isso fornece a saída esperada de 1.7.0_09

e ...

Linux:

java -version 2>&1 | awk -F '"' '/version/ {print $2}'

Isso fornece a saída esperada de 1.8.0_05

Eu quero saber se posso obter o mesmo resultado, com o mesmo comando nos diferentes sistemas operacionais

    
por Pieter van Niekerk 14.08.2015 / 10:06

1 resposta

9

Aqui está uma maneira portátil:

java -version 2>&1 | PATH='getconf PATH' awk -F '"' '/version/ {print $2}'

Ao contrário das sugestões usuais que tentam adivinhar o local correto dependendo da implementação do Unix, ele usa o comando getconf PATH que retorna o caminho para os comandos compatíveis com POSIX.

    
por 14.08.2015 / 10:18