Problem with BASH and [ ! -t 0 ] test.

GESBBB gesbbb at yahoo.com
Wed Feb 18 12:29:21 PST 2009


> From: Matthew Seaman m.seaman at infracaninophile.co.uk
> GESBBB wrote:
> | I am using this snippet of code in a bash script that is run via CRON.
> |
> |
> | 
> | # See if we are running via CRON
> |    if [ ! -t 0 ]
> |      then
> | # Use the BASH RANDOM function to generate a random number between 0 & 32767
> |        RESTING=$((RANDOM/60))
> |        sleep ${RESTING}
> |    fi
> | 
> |
> |
> | It runs fine from the console; however, when run via CRON, it outputs
> this error message.
> |
> | Tput: No terminal type specified and no TERM environmental variable.
> |
> | I have Googled about, yet I cannot find an answer. Perhaps some Bash
> guru can assist me.
> |
> 
> jot -r 1 0 546
> 
>     Cheers,
> 
>     Matthew

I am a little confused. I believe the problem is with the "if [ ! -t 0 ]" statement. I tried to redirect the error message; however, it still appears in the email sent by CRON. I tried using this statement instead: if ( ! tty -s &> /dev/null ) and "if ( ! tty -s ) &> /dev/null"; however, they also produce an error message although the function does work correctly. Is this just something I should just ignore, or is there a way to stop the message from being sent in the CRON report?

-- 
Gerard
gesbbb at yahoo.com


More information about the freebsd-questions mailing list