#!/bin/bash -x COUNTER=0 while test $COUNTER -lt 1; do #run forever #this seems to expect a file named 1 in the directory. no idea why. EDIT: that was with counter < 1. must use -lt #if load gt 1, then load == 1 LOAD=$(cat /proc/loadavg | cut -c 1-4) FIRSTVAL=$(echo $LOAD | cut -c 1) #check if 1 or higher test $FIRSTVAL == 1; #is equal to 1? if test $? == 0; then #return value FINALVAL=47 fi test $FIRSTVAL > 1; if test $? == 0; then #if test is succesful, returns zero, so we are looking for a zero FINALVAL=47 fi test $FIRSTVAL < 1; if test $? == 0; then #i know this isn't efficient. could combine if else. dont care. FINALVAL=$(echo $LOAD | cut -c 3-4) fi echo $FINALVAL #otherwise load x 47 == VAL DIVIDEBYTWO=$(expr $FINALVAL / 2) #must be space between / and numbers # if test $DIVIDEBYTWO > 50; then #hmmm... needs -gt not > # DIVIDEBYTWO=50; # fi # echo "DIVIDEBY TWO IS: $DIVIDEBYTWO" #seems to need a space after the first funct. parenthesis, and the call to function #seems to not like function named gopher, so set to go4. perhaps character limit. echo "(defun go4() (with-i2c (str 96) (write-byte #x40 str) (write-byte $DIVIDEBYTWO str) (write-byte #x00 str))) (go4)" > /dev/ttyUS> # echo " (go4)" > /dev/ttyUSB0 sleep 5 done