Visit Our UNIX and Linux User Community


Help Syntax Shell-Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help Syntax Shell-Script
# 1  
Old 08-12-2009
Help Syntax Shell-Script

Hi Guys,

iīve a question ... but itīs a litte bit tricky:

iīve a 3 php-scripts which runīs via cron at night. These script reads an xml-file a writes it in an MySQL-DB.
I named them (for example here ) Script1 - Script3. The XML-Files i named xml1 - xml3.

Now, iīve build a Batch-file, which will start the php-scripts an should write success or error to a log-file ...

And hereīs my problem:

When Script1 starts, it reads xml1 - when xml1 is alright, script1 runs till the end and thereīs no output - "echo $?" returns with "0"

Now, (error-example) when Script1 starts, it reads xml1 - when xml1 is missing or corrupt, script1 runs till the end too and thereīs an output called "Can /srv/www/htdocs/_source/xml-file not read."
This is an order at the end of script1 (and script 2 & 3 of course)
When i type "echo $?" it returns "0", too.

And hereīs my second problem:
my logfile should looks like this:

"Script1 was read - success" (-> when script1 ends with no errors, xml-is fine)

"Script1 was read - error" - Can /srv/www/htdocs/_source/xml-file not read." (-> when script1 ends with errors.)

Can somebody help me with the syntax to write my batch-file:
Hereīs are my first steps/trials ...

#! /bin/sh
# Description
cd /srv/www/htdocs/import (here are the 3 scripts)

/usr/bin/php5 script1.php;

if [ $ ... donīt know]
then
echo ' Script1 was read - success' ;
else

echo ' Script1 was read - error' - Can /srv/www/htdocs/ ... ' ;

fi;
... and so on till Script3

Many Thanks.
Regards,
Michael


PS:
Hope, my explanations are plausible. If not, feel free to ask ...
# 2  
Old 08-12-2009
To keep the forums high quality for all users, please take the time to format your posts correctly.

First of all, use Code Tags when you post any code or data samples so others can easily read your code. You can easily do this by highlighting your code and then clicking on the # in the editing menu. (You can also type code tags [code] and [/code] by hand.)

Second, avoid adding color or different fonts and font size to your posts. Selective use of color to highlight a single word or phrase can be useful at times, but using color, in general, makes the forums harder to read, especially bright colors like red.

Third, be careful when you cut-and-paste, edit any odd characters and make sure all links are working property.

Thank You.

The UNIX and Linux Forums
# 3  
Old 08-12-2009
(sorry for my english)

i supose every of your scripts returns a code,
0 = Ok
1 = No ok
then yo can do:

if script1.sh params
then
....your code
if script2.sh params
then
..... your code....
else
echo "ERROR in script2.sh"
fi
else
echo "ERROR in script1.sh"
fi
------------------------
example with a command:

$more file
if cat $1
then
echo "cat execute OK"
else
echo "cat execute NO-OK"
fi
# 4  
Old 08-12-2009
Quote:
Originally Posted by chipcmc
(sorry for my english)

i supose every of your scripts returns a code,
0 = Ok
1 = No ok
No - and that is the problem.
i get return-code "0" everytime - even when the script runs till end but the xml-file is corrupt or missing ...
Code:
 
 
Hereīs an example:
 
XML-File is ok:
/usr/bin/php5 script1.php; echo $? -> returns "0"
 
XML-File is corrupt:
/usr/bin/php5 script1.php; echo $? -> returns "Can /srv/www/htdocs/_source/xml-file not read".0

# 5  
Old 08-12-2009
two ways:
1- Can you modify the sripts?
2- Redirect stdout of scripts.pp, if script is OK the file size is 0 but if script is NO OK the size is not 0 becaus the are the string "Can /srv/www/htdocs/_source/xml-file not read"
/usr/bin/php5 script1.php >/tmp/script1.$$
if [ -s /tmp/script1.$$ ]
then
echo "Error"
else

fi
rm -f /tmp/script1.$$

Note probe if thestring "Can /srv/www/htdocs/_source/xml-file not read" go out by stdout or by stderr, if is the last (stderr) de redirection is 2>

---------- Post updated at 09:36 AM ---------- Previous update was at 09:33 AM ----------

if you don tmp files you can probe:

buffer=`/usr/bin/php5 script1.php`
#be sure the content of buffer
echo "[$buffer]"
if [ "$buffer" ]
then
echo "Error"
else
echo "OK"
fi
# 6  
Old 08-13-2009
Quote:
Originally Posted by chipcmc
two ways:
1- Can you modify the sripts?
2- Redirect stdout of scripts.pp, if script is OK the file size is 0 but if script is NO OK the size is not 0 becaus the are the string "Can /srv/www/htdocs/_source/xml-file not read"
/usr/bin/php5 script1.php >/tmp/script1.$$
if [ -s /tmp/script1.$$ ]
then
echo "Error"
else

fi
rm -f /tmp/script1.$$

Note probe if thestring "Can /srv/www/htdocs/_source/xml-file not read" go out by stdout or by stderr, if is the last (stderr) de redirection is 2>
Version 2 works fine ... many thanks for your help.

---------- Post updated 13-08-09 at 08:19 AM ---------- Previous update was 12-08-09 at 02:58 PM ----------

... have just seen,
when the script runs and thereīs an error-message in /tmp/script1.$$
how can the error-message be displayed in the logfile, too?

Code:
 
/usr/bin/php5 script1.php >/tmp/script1.$$
if [ -s /tmp/script1.$$ ]
then
echo 'Script 1 was not read - Error - & **display error-message** '
else
echo 'Script 1 was read - Success'
fi
rm -f /tmp/script1.$$

# 7  
Old 08-13-2009
Code:
echo 'Script 1 was not read - Error -\n `cat /tmp/script1.$$`  '

Code:
echo 'Script 1 was not read - Error "
cat /tmp/script1.$$


Last edited by chipcmc; 08-13-2009 at 07:38 AM..

Previous Thread | Next Thread
Test Your Knowledge in Computers #47
Difficulty: Easy
Von Neumann is considered to be the 'Father of Computing'.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with if statement syntax in shell script

I want to make the file test condition a variable ($Prmshn in code below). My goal is to use something like the first three unsuccessful if statetments since the 'if #!/bin/ksh test_input() { Prmshn=${1} InFLNm=${2} ifReq="-$Prmshn $InFLNm" #the following three if statments fail: #if ] ;... (10 Replies)
Discussion started by: ms63707
10 Replies

2. Shell Programming and Scripting

Help with Check Syntax of Shell Script without Running

Hi Everyone, Is there any way ( generic) to check syntax of Shell Scripts without running it?? (4 Replies)
Discussion started by: roy121
4 Replies

3. Shell Programming and Scripting

syntax error in shell script

I am creating a shell script. In which, I need to get server name and server IP. I used this command in script. servername=`cat /etc/hosts|grep `eval hostname`|awk '{print $2}'` however, when execute script or put set -x to debug, it return: line 13: syntax error at line 13: `|' unexpected... (4 Replies)
Discussion started by: duke0001
4 Replies

4. Shell Programming and Scripting

Syntax Error in Unix Shell Script

I am trying to run a unix script in my home directory.Snippet below echo "`date '+%Y%m%d_%H%M%S'` Getting ProductList.dat" if ( -f $DIR/ProductList.dat) then cp $DIR/ProductList.dat MigratedProductList.dat else echo "`date '+%Y%m%d_%H%M%S'`ProductList.dat does not exist; Processing... (4 Replies)
Discussion started by: Mary James
4 Replies

5. Shell Programming and Scripting

shell script | bc syntax format

sorry but need help http://i.investopedia.com/inv/articles/site/CalculationEMA.gif trying to achieve ema in script I have this syntax which errors ema=` ; the 0.153846154 ='s Smoothing Factor really appreciate help (3 Replies)
Discussion started by: harte
3 Replies

6. Emergency UNIX and Linux Support

Seek help on shell script syntax errors

I want to delete archivelog files that has been archived and applied from primary database to standby database. This piece of script is working in Linux server. However, I copy it to Unix server with tiny modification. It won't work and generate the error message. I have checked code carefullt... (8 Replies)
Discussion started by: duke0001
8 Replies

7. Shell Programming and Scripting

Syntax error calling TCL script from shell script

hello everyone i am beginner on shell scripting .and i am working on my project work on ad hoc network i wrote a batch (.sh) to do a looping and execute a tcl script i wrote before in each iteration ..but i got this problem " syntax error near unexpected token `('... (1 Reply)
Discussion started by: marcoss90
1 Replies

8. Shell Programming and Scripting

How to Check Shell script syntax w/o executing

Hello All, I looking for a way to verify the correction of shell script syntax. Is there any switch like -c in perl which do this in shell ? Thank You. (1 Reply)
Discussion started by: Alalush
1 Replies

9. Shell Programming and Scripting

Basic Shell script syntax help

Hi All, I am new to shell scripting. I have a variable which holds a numeric value.I have to check whether this variable holds a value between(0- 8),(8-17)(17-24).How do i write this syntax using if in shell scripting. Thanks Vignesh (2 Replies)
Discussion started by: vignesh53
2 Replies

10. Shell Programming and Scripting

Shell script syntax checker

I have a rather big script that i have written in ksh and it is falling over in two places with a 'test argument' error. I know this usually means that the if statement is not correct, but it is fine. I have looked through the rest of the script for any odd brackets or ` marks, but can't see... (2 Replies)
Discussion started by: handak9
2 Replies

Featured Tech Videos