Sponsored Content
Top Forums Shell Programming and Scripting IF section problem. syntax error: unexpected end of file error Post 302911431 by Don Cragun on Thursday 31st of July 2014 02:43:39 PM
Old 07-31-2014
Quote:
Originally Posted by Corona688
I don't think you can just dump a raw number into [ ] like that without telling it what to do with that number. [ "$?" -ne 0 ] or such.

But if you just want to use the return value, do so directly. The ! reverses it to 'if not':

Code:
if ! tail -50 SapAdapterInboundRfc-P30-SapAdapterInboundSynchronous.log | grep -i "Error" >/dev/null
then
        echo "There is no error in the last 50 lines in the logfile"
fi

Coronna688,
Ouch. Yes, you're correct. In shell's test, [ "$arg" ] tests for non-empty string; not non-zero and non-empty (as in awk).

For clarity when reading a script, I don't usually use:
Code:
if ! tail -50 SapAdapterInboundRfc-P30-SapAdapterInboundSynchronous.log | grep -i "Error" >/dev/null

when the compound-list is more than about 40 characters long, but that is just my personal preference. We don't want the > /dev/null here because this code is replacing earlier code that was:
Code:
returned=`tail -50 SapLogs.log | grep -i "Error"`
echo $returned

and then checking whether "$returned" expands to an empty string.


And, now for the good news...
jedzio,
Know that we know you're using bash on a Linux distro (even though it hasn't been updated for four years), I think I know what the problem is. I should have asked what editor you were using!

To get that error message from bash for the command: set -xv, you must be using an editor that uses the DOS convention of carriage-return followed by newline as the line terminator instead of the UNIX/Linux convention using only the newline.

So, I think you can get your script to work if you write this into a new file (let's call it newscript):
Code:
#!/bin/bash
echo "=== Checking logs ==="
tail -50 SapAdapterInboundRfc-P30-SapAdapterInboundSynchronous.log | grep -i "Error"
if [ $? -ne 0 ]; then
    echo "There is no error in the last 50 lines in the logfile"
fi
echo "=== Last log entry ==="
var=$(tail -1 SapAdapterInboundRfc-P30-SapAdapterInboundSynchronous.log | awk '{print substr($0,13,8)}')
echo "Time elapsed since last entry =" $(( $((`date +%s -d $var`)) - $((`date +%s`)) ))

and then run the commands:
Code:
tr -d '\r' < newscript > checklogs.sh
chmod +x checklogs.sh

to remove any extraneous carriage return characters in your script and make it executable again.

Let us know what happens.

We usually only see this problem on files that have been copied from Windows systems to UNIX and Linux systems. I strongly suggest that you look at the documentation for your editor to see if there is a way to set the characters used as line terminators. If there isn't any way to set the line terminator to just a newline (AKA linefeed) character, seriously consider learning how to use vi or emacs instead of your current editor. Extraneous carriage returns in shell scripts, source code for other languages, and in data files will cause you no end of grief.
 

10 More Discussions You Might Find Interesting

1. Solaris

syntax error at line 59: `end of file' unexpected

Hello... I'm trying to run the sshd script, but I keep geting the Syntax errot message . Here's the last few lines on the script. set nu in vi shows 58 lines, but I keep getting error referring to line 59. Any help is appreciated. Thanks, Remi else echo... (4 Replies)
Discussion started by: Remi
4 Replies

2. Shell Programming and Scripting

syntax error: unexpected end of file

Hi, I need ur help is this matter, i have th ebelow script, and i keep getting this error: syntax error: unexpected end of file affectedRow=`cat dbOutput.log | grep "1 row affected"` echo "affectedRow : $affectedRow" if ; then echo "Look to the next OMCDB" ... (10 Replies)
Discussion started by: Alaeddin
10 Replies

3. Shell Programming and Scripting

syntax error: unexpected end of file

I have a script that's failing ./zzmaster.sh: line 2: syntax error: unexpected end of file There are 4 scripts total involved. The first 'znocc0.sh' essentially curls a page then does some sed sequences... #!/bin/sh #GET SENTINAL INFO curl -b z0cookie.txt -L -k -e... (2 Replies)
Discussion started by: phpfreak
2 Replies

4. Shell Programming and Scripting

syntax error: unexpected end of file

Hi, I have problem in constructing "IF" condition. The below code throws "tst.sh: line 10: syntax error: unexpected end of file" #!/bin/ksh test=9 echo $test if ] then echo "in" fi echo "end" exit 0 Actually, i want to check whether the variable $test is empty or null. ... (5 Replies)
Discussion started by: tinku
5 Replies

5. Shell Programming and Scripting

syntax error: unexpected end of file

Hi, I am newbie to UNIX scripting. I am facing this error "syntax error: unexpected end of file" while executing the following script: ------ a=$1 if then sqlplus -s prospect_stg/prospect_stg@mdmpt <<END insert into bckup_marc_parameter_lookup select * from... (6 Replies)
Discussion started by: boopathyvasagam
6 Replies

6. Shell Programming and Scripting

syntax error: unexpected end of file

I will appreciate help is this matter. i am getting this error (./getwind.scr: line 41: syntax error: unexpected end of file) in the following script : ############################## #QSUB -eo -q sb -lT 1200 -s /bin/csh #Run on an HP-UX machine or norway to access ncks # lat and lon are in... (0 Replies)
Discussion started by: peeriich
0 Replies

7. Shell Programming and Scripting

syntax error unexpected end of file

I am new to unix, so thank u for ur patience I try to make it work (to duplicate two first columns in several files): #!/bin/bash for i in `seq 2 5` do awk `{ print $1,$1,$2,$2,$3,$4}` final_chr.${i} > input_${i} done and i get ./my_script3.sh: command substitution: line 5: syntax... (2 Replies)
Discussion started by: kush
2 Replies

8. Shell Programming and Scripting

cygwin syntax error: unexpected end of file

Hi, I am getting error while running the script. "syntax error: unexpected end of file" if i do cat i cant see the content of the script also it is showing as cat test.sh doner /home/master/* /home/Priya/$i| while read i j The original script is paste /home/names.txt /home/ip.txt |... (6 Replies)
Discussion started by: ranjancom2000
6 Replies

9. Shell Programming and Scripting

Syntax error `end of file' unexpected

I checked the forum and internet, tried different workaorunds but it didnt fixed the error. Please advise on the code. #!/bin/sh CWD=/home/test/Bench cd $CWD (grep "`date +%d-%b"`" File.txt) > /home/test/Bench/dateout if then echo “data” > /home/test/ Bench /test else echo "File... (16 Replies)
Discussion started by: rajjev_saini123
16 Replies

10. Shell Programming and Scripting

Unexpected End of File Syntax Error

Hi, I am brand new to this so I apologize ahead of time for any formatting problems. I know there is a previous (closed) thread on here about this problem but I wasn't able to fix the error following the posts there so I thought I could create a new one. Here is the error I am getting: ... (3 Replies)
Discussion started by: SierraG
3 Replies
All times are GMT -4. The time now is 10:28 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy