Thursday, March 3, 2011

What would be the right way to declare an array within a script that will be called by cron?

I've written a Korn Shell script that sets an array the following way:

set -A fruits Apple Orange Banana Strawberry

but when I'm trying to run it from within cron, it raises the following error:

Your "cron" job on myhost
/myScript.sh

produced the following output:

myScript.sh: -A: bad option(s)

I've tried many crontab syntax variants, such as:

Attempt 1:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /path/to/script/myScript.sh

Attempt 2:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /path/to/script/./myScript.sh

Attempt 3:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * cd /path/to/script && ./myScript.sh

Any workaround would be sincerely appreciated. Thanks much in advance!

From stackoverflow
  • Although I'm not sure it's the best way to do it, I've managed to solve it this way:

    Attempt 4:

    0,5,10,15,20,25,30,35,40,45,50,55 * * * * cd /path/to/script && ksh ./myScript.sh
    
  • Does myScript.sh start with

    #!/bin/ksh
    

    (or whatever the path is for your ksh)?

    Nano Taboada : Indeed it does. Thanks for the feedback!
    jaredor : If it does start with #!/bin/ksh and still doesn't work as a Kornshell script, could it be that the script itself is not executable and that the cron job is therefore trying to run it as Bourne (on Linux, Bash) shell?

0 comments:

Post a Comment