Neste exemplo, criaremos um conversor de temperaturas que permite ao usuário converter temperaturas entre Celsius, Fahrenheit e Kelvin.
Arquivo: **temperature_converter.sh.htm**
#!/bin/bash
echo "<!DOCTYPE html>"
echo "<html>"
echo "<head>"
echo "<title>Conversor de temperaturas</title>"
echo "</head>"
echo "<body>"
echo "<h1>Conversor de temperaturas</h1>"
# Formulário para inserir temperatura e unidades
echo "<form method='post' action='convert_temperature.run'>"
echo "<label for='input_temperature'>Temperatura:</label>"
echo "<input type='number' name='input_temperature' step='any' value='$input_temperature' required> "
echo "<select name='input_unit'>"
echo "<option value='C' $( [ "$input_unit" = "C" ] && echo 'selected' )>Celsius</option>"
echo "<option value='F' $( [ "$input_unit" = "F" ] && echo 'selected' )>Fahrenheit</option>"
echo "<option value='K' $( [ "$input_unit" = "K" ] && echo 'selected' )>Kelvin</option>"
echo "</select> "
echo "<label for='output_unit'>para:</label>"
echo "<select name='output_unit'>"
echo "<option value='C' $( [ "$output_unit" = "C" ] && echo 'selected' )>Celsius</option>"
echo "<option value='F' $( [ "$output_unit" = "F" ] && echo 'selected' )>Fahrenheit</option>"
echo "<option value='K' $( [ "$output_unit" = "K" ] && echo 'selected' )>Kelvin</option>"
echo "</select> "
echo "<button type='submit'>Converter</button>"
echo "</form>"
# Exibir o resultado da conversão, se houver
if [ -n "$converted_temperature" ]; then
echo "<h2>Resultado: $converted_temperature</h2>"
fi
echo "</body>"
echo "</html>"
Arquivo: **convert_temperature.run**
#!/bin/bash
# Função para converter temperaturas
convert_temperature() {
local input_temperature=$1
local input_unit=$2
local output_unit=$3
# Converter a temperatura de entrada para Celsius
case $input_unit in
"F") input_temperature=$(echo "scale=2; ($input_temperature - 32) * 5/9" | bc) ;;
"K") input_temperature=$(echo "scale=2; $input_temperature - 273.15" | bc) ;;
esac
# Converter a temperatura em Celsius para a unidade de saída
case $output_unit in
"F") input_temperature=$(echo "scale=2; $input_temperature * 9/5 + 32" | bc) ;;
"K") input_temperature=$(echo "scale=2; $input_temperature + 273.15" | bc) ;;
esac
echo "$input_temperature"
}
converted_temperature=$(convert_temperature "$input_temperature" "$input_unit" "$output_unit")
bigbashview temperature_converter.sh.htm