Script Variables Inquiry, Values Okay in Standalone Exec, No-Show in Cron Exec


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script Variables Inquiry, Values Okay in Standalone Exec, No-Show in Cron Exec
# 1  
Old 06-21-2012
Script Variables Inquiry, Values Okay in Standalone Exec, No-Show in Cron Exec

I have the following bash script lines in a file named test.sh.

Code:
#!/bin/bash
#
# Write Date to cron.log
#
echo "Begin SSI Load $(date +%d%b%y_%T)"
#
# Get the latest rates file for processing.
#
d=$(ls -tr /rms/data/ssi | grep -v "processed" | tail -n 1)
filename=$d
export filename
echo "The file name is $filename."


When I execute ./test.sh from the command line, the variables are set and the file name is displayed.

However, when I have the script run through cron, the file name comes back blank. This gives me an indication that the directory listing statement isn't run, possibly. Is this a true observation? What would cause the variables to be set during a standalone execution and not when executed through cron? Smilie
# 2  
Old 06-21-2012
"doesn't work in cron" is such a common question it's in our FAQ. Make sure you have a sane PATH set, so your script can find all the utilities it needs, like grep and tail. You can do this by running . /etc/profile or by just setting PATH manually.
# 3  
Old 06-21-2012
Turns out that a slight adjustment was required. After setting the PATH and sourcing /etc/profile, I culled through some other scripts to see how ls was used. Turns out I had to prefix the ls and tail with /usr/local/bin/.

Code:
#!/bin/bash
#
# Write Date to cron.log
#
echo "Begin SSI Load $(date +%d%b%y_%T)"
#
# Get the latest rates file for processing.
#
cd /rms/ssi/data
d=$(/usr/local/bin/ls -tr *.csv | /usr/local/bin/tail -n 1)
filename=$d
export filename
echo "The file name is $filename."

This puzzle solved, until the next one. Thanks.
# 4  
Old 06-21-2012
Or you could have put /usr/local/bin/ in your PATH, too.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Question about global environment variables & fork() exec()

Hello... And thanks in advance for any help anyone can offer me on my question! I've been doing a lot of reading to try and find my answer... But I haven't had any luck What I'm trying to understand is where a child process inherits global environment variables from? I understand the exec()... (2 Replies)
Discussion started by: bodisha
2 Replies

2. Shell Programming and Scripting

Use of exec command in a script

Guru's, I want to make a use of "exec" command in my script and want to check return code of executing script, but as you know exec command will terminate current processID and comeout and will trigger new one, i am unable to check return code of script and not able to run a scrpit after exec. ... (2 Replies)
Discussion started by: pawar.atul28
2 Replies

3. UNIX for Dummies Questions & Answers

while read and exec based on values

hi i need a ksh to read file and depending on value do something. can anyone help? thanks (3 Replies)
Discussion started by: chamajid
3 Replies

4. Shell Programming and Scripting

exec script error

Hi, Gurus, my script code as following: #!/usr/bin/sh mkdir dir1 result=`echo $?` if ; then echo "completed" else echo "wrong" fi When I execute it with command sh filename. , it executed successfully. but, when I execute it with command . filename it throw out error: -bash:ELF :... (2 Replies)
Discussion started by: ken002
2 Replies

5. Shell Programming and Scripting

-exec cmd in ksh script

Hi, I discovered the following single-line script works very well to cp a large number of files from a source directory to a destination directory while avoiding the "argument list too large" error: # cpmany - copy large number of files # Takes two parameters - source dir, destination dir... (14 Replies)
Discussion started by: Tanuka
14 Replies

6. Shell Programming and Scripting

stdout redirect is working buy direct script exec but not in cron

Hi @ all :) i made a very little shell script witch is working well when i'm launching it directly like with ./script but when i'm launching it by cron tab it work at half only. the part of the script witch are not working are: #!/bin/sh apt-get updade apt-get -s upgrade >>... (5 Replies)
Discussion started by: calibal
5 Replies

7. Shell Programming and Scripting

Perl variables in exec or system

I am new in Perl. I am working in simple script and the varibles are working well outside the exec or system command. but they don't work as parameters to exec or system command. The script is attached. please help. (8 Replies)
Discussion started by: ahmed_zaher
8 Replies

8. Shell Programming and Scripting

using -exec in a script

I am using a third party job management program called Autosys. the command to load a jil into the autosys database is jil < somefilename.jil I have a directory and it in are a lot of jils. rather than type jil < somefilename.jil for every file I would like to script something do do it. if cd... (2 Replies)
Discussion started by: jayjabour
2 Replies

9. Shell Programming and Scripting

Multiple exec command s in a script

Hi everyone, I've been racking my brains for ages on this and need your help/advice. I am writing a script that is reading in file to process and putting them into a temporary file. The loop starts and the script gets the first file name, does what i needs to do (copy it) and then returns to... (2 Replies)
Discussion started by: Angoss
2 Replies

10. UNIX for Dummies Questions & Answers

difference between source, exec and ./script

What is the difference between sourcing a script, running it or execing it? (1 Reply)
Discussion started by: 98_1LE
1 Replies
Login or Register to Ask a Question