Existem várias abordagens para encontrar o maior dos três números do UNIX, usando ferramentas diferentes. Aqui estão alguns exemplos:
1. Usando `awk`: Esta é uma solução concisa e eficiente:
`` `BASH
awk '{print ($ 1> $ 2? ($ 1> $ 3? $ 1:$ 3):($ 2> $ 3? $ 2:$ 3))}' <<<"10 5 15"
`` `
* `<<<" 10 5 15 "` fornece os três números como entrada. Substitua -os por seus números ou variáveis reais.
* O script `awk` usa operadores ternários aninhados para comparar os números com eficiência.
2. Usando `Bash` (com expansão aritmética): Isso é mais legível, mas um pouco menos conciso do que a solução `awk`:
`` `BASH
num1 =10
num2 =5
num3 =15
Maior =$ ((num1> num2? num1:num2))
Maior =$ ((Maior> num3? Maior:num3))
eco $ MAIOR
`` `
Este script compara primeiro `num1` e` num2`, atribuindo o maior a `maior '. Em seguida, ele se compara ao `Maior` com` num3`, atualizando `melhor ', se necessário.
3. Usando `BC` (para números de ponto flutuante): Se você precisar lidar com os números de ponto flutuante, `BC` (calculadora básica) oferece mais precisão do que a expansão aritmética do Bash:
`` `BASH
num1 =10.5
num2 =5.2
num3 =15.8
Maior =$ (echo "$ num1> $ num2? $ num1:$ num2" | bc -l | bc -l)
Maior =$ (echo "$ melhor> $ num3? $ melhor:$ num3" | bc -l)
eco $ MAIOR
`` `
Essa abordagem usa `bc -l` (com a opção` -l` para funções da biblioteca matemática) para comparações e cálculos de ponto flutuante. O uso duplo de `BC` é lidar com o ternário aninhado efetivamente, pois o` bc` não suporta diretamente expressões ternárias aninhadas da mesma maneira que o Bash.
4. Função em bash: Para reutilização, crie uma função bash:
`` `BASH
maior_of_three () {
num1 =$ 1
num2 =$ 2
num3 =$ 3
Maior =$ ((num1> num2? num1:num2))
Maior =$ ((Maior> num3? Maior:num3))
eco $ MAIOR
}
eco $ (Greatest_Of_Three 10 20 15) # Saída:20
`` `
Esta função leva três argumentos e retorna o melhor.
Lembre -se de substituir os números de exemplo pelos seus valores reais. Escolha o método que melhor se adapte às suas necessidades e ao estilo de codificação. A solução `awk` é geralmente preferida por sua brevidade e eficiência se você estiver lidando com números inteiros, enquanto a abordagem` BC 'é necessária para números de ponto flutuante. A função Bash fornece melhor organização de código para cenários mais complexos.