Portál AbcLinuxu, 14. května 2025 01:11
#!/bin/bash temp=$(digitemp_DS9097 -a | grep 'C:' | awk '{print $7}') if (($temp>=29)) then echo neco je v neporadku else echo je to ok exit fiMusi to bejt blbost, ale uz jsem fakt vyflusanej ... z cidla me prichazi teplota ve tvaru priklad : $temp=25.56, jenze bash dokaze zpracovat jen tento format $temp=25,56. Jak by to slo obejit ?
bash
umí pracovat pouze s celými čísly. Co vás mate, je skutečnost, že čárka je operátor v aritmetické expanzi (hodnotou výrazu 'A,B
' je B
).
${temp/./,}
temp=$(digitemp_DS9097 -a | grep 'C:' | awk '{print $7}') echo teplota je ${temp/./,}ale podminka bere z vysledku jen to co je za ni, pr : u hodnoty 44,55 bere tu 55 grr
#!/bin/sh
temp=$(digitemp_DS9097 -a | grep 'C:' | awk '{print $7}'|tr -d '.')
if [ $temp -le 2900 ] then
echo "mensi"
else
echo "ok"
exit
fi
#!/bin/sh temp=$(digitemp_DS9097 -a | awk '$1 == "C:" {print ($7 * 100)}')(asi ta podmínka bude chtít trošku upravit)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.