[X-Unix] Loop structure syntax question

William H. Magill magill at mcgillsociety.org
Wed Nov 23 17:17:58 PST 2005


On 23 Nov, 2005, at 16:07, Mac Daddy wrote:
> This thing is, this script NEVER fails when run by hand! Only when  
> run in cron.
> I have the script set to run in  #!/bin/csh because this 'foreach'  
> loop structure above fails if I run it under /bin/sh or /bin/bash  
> and the code was given to me by someone else who uses csh on Solaris.

This is a common problem for folks new to "multi-lingual" scripting  
and cron.

Jobs run from cron have no meaningful environment. They actually have  
the very basic, default, root environment but the primary thing which  
is missing is a "full" $PATH. The default root environment is  
different from the default user environment.

That means that unless you either specify the full path of a command,  
the command will not be found.

If you throw some diagnostic (display) commands into the script, and  
write std-err to a disk file, you will quickly discover just what is  
"not found."

(Put the line "set -xv" in the csh script to turn on printing and  
expansion.
(Use something like:
# test periodic stuff
# 32 17 * * * root periodic daily > /var/log/periodic.out1 2>&1

to capture the output of the script in the file "/var/log periodic.out1"
2>&1 writes both standard error and standard out into standard out.

The other thing which trips up folks writing for cron for the first  
time, is WHERE your script is executing from. Everyone always assumes  
that it is executing "where they want it to execute." But in reality,  
it executes as root from root's home directory (which is not /).

There are several ways to solve your problem.

"man 5 crontab" will give you most of the techniques.

T.T.F.N.
William H. Magill
# Beige G3 [Rev A motherboard - 300 MHz 768 Meg] OS X 10.2.8
# Flat-panel iMac (2.1) [800MHz - Super Drive - 768 Meg] OS X 10.4.1
# PWS433a [Alpha 21164 Rev 7.2 (EV56)- 64 Meg] Tru64 5.1a
# XP1000  [Alpha 21264-3 (EV6) - 256 meg] FreeBSD 5.3
# XP1000  [Alpha 21264-A (EV 6.7) - 384 meg] FreeBSD 5.3
magill at mcgillsociety.org
magill at acm.org
magill at mac.com
whmagill at gmail.com




More information about the X-Unix mailing list