Para obter a saída de um comando executado, você precisa usar backticks ('), caso contrário, você só obtém o valor de retorno desse comando.
Eu realmente não sei o que você acha que seu código faz, mas eu entendo o que você quer fazer. Eu escrevi um pequeno script que faz o que você quer. Não é muito flexível e não estou bem com o REGEX, awk
e sed
.
Então, foi o que eu fiz:
#!/bin/bash
# Change the adapter to your desired one
ADAPTER="k10temp"
# Extract the high temp from the string
HIGH_TEMP='sensors | grep -A5 "${ADAPTER}" | grep temp1 | awk '{print $5}' | sed -e 's/+//' -e 's/\..°.*//''
# Extract the current temp from the string and print it
CURR_TEMP='sensors | grep -A5 "${ADAPTER}" | grep temp1 | awk '{print $2}' | sed -e 's/+//' -e 's/\..°.*//''
echo "Current temperature: ${CURR_TEMP}°C"
# check if current temp is greater or equal
if [ "${CURR_TEMP}" -ge "${HIGH_TEMP}" ]; then
echo "Do Something to keep cool."
fi
Como eu disse, isso funciona, mas não de uma maneira muito boa. Provavelmente há um liner mais curto para obter as temperaturas.
Esqueci-me: você pode salvar esse script e conceder permissão de execução
$ chmod u+x /PATH/TO/SCRIPT/sciptname.sh
Coloque o /PATH/TO/SCRIPT/sciptname.sh
no seu .bashrc