It is always scary when you get a syntax error on line 11 of a 5 line script.
My first comment would be that you should change:
to:
or better yet (removing problems that could be caused depending on the contents of SapLogs.log):
But that alone isn't likely to be your problem. Maybe if you showed us the whole script and told us what OS and shell you're using, we'd have a better chance of figuring out what is going on.
Thanks for prompt reply! Appreciate that.
Please find below whole script:
It returns output:
But, what is more interesting, the script:
Works perfectly. It returns whole data:
Unfortunately I don't know how can I check what system I am using.
The command uname -a will tell you what version of what OS you're using.
It is very strange that the output from the 1st script you showed us did not contain the line:
Please add the following line to your script between the 1st and 2nd lines:
and show us the output.
I don't see why the following would make any difference in the behavior of your script (except that if there are multiple errors found, they will be printed on separate lines; and a little bit of truth in advertising), but it will use less memory and run faster. Try changing:
to:
My OS version:
Unfortunately, it still doesn't work... I am confused a bit now
When I add set -xv to script the error appears:
My current code is as follows (I've changed filename but content is the same):
When I delete set -xv the output is:
I really don't know why this simply IF doesn't work...
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':
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:
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:
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):
and then run the commands:
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.
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)