Sponsored Content
Top Forums Shell Programming and Scripting lack of understanding > annoying error Post 302317398 by jzacsh on Tuesday 19th of May 2009 12:08:15 AM
Old 05-19-2009
Thanks for all your replies!

Quote:
Originally Posted by TonyFullerMalv
Can't find any missing " or ` but the line:
Code:
if [ -z $tarCheck ]

needs speech marks around the $tarCheck otherwise when it is empty the test will fail.
the script previously worked fine before this (I tested it in both cases), but for the sake of being thorough (and I trust most people's opinions over mine in this case) I've stuck the quotes in.

Quote:
Originally Posted by TonyFullerMalv
Not so critical but might help as the strings going into work have spaces in them I would put speech marks around $work in the line:
Code:
if [ $work = "STARTING" ]

The header of the script says /bin/sh and then you test it with ksh ./backup.sh, sh and ksh are of course different shells that treat some items differently.
ahh, my newbie mistake - i forgot that . / would be in my shell which happens to be ksh ! didn't make the connection. thanks!

Quote:
Originally Posted by TonyFullerMalv
What does running:
Code:
$ sh -n ./backup sh

report?
the above has the same result as just typing backup.sh into the terminal (i didn't know about -n option, noexec according to man, thanks!).

which, with all the above changes, is now:
Code:
./backup.sh: 28: Syntax error: end of file unexpected (expecting "fi")

Quote:
Originally Posted by tom_cmu
Have you check this line?
>
#OLD WAY: #fileName=`date | sed -n s/ /_/g p | sed -n s/^/Backup_/p | sed -n s/$/\.tgz/p | sed -n s/^/$landingDir/p` #NAME OF BACKUP FILE
>
Though you add comment at front of this line. You see that the editor wrap your text
down. However, you should check whether it is a consequent or separate statement.
The better way is add another comment to the second line.
The line you're referring to is indeed only one line, without any breaks (though I know what you're saying, their isn't anywhere I can stick a second comment).

Quote:
Originally Posted by tom_cmu
In other hand, you can try and do debuging.
Just put comment to all the inner IF cause and put echo statement to verify that the if cause has not conflict. You can put echo command to show the flow and the assign value of each variable. Then you just remove the comment line by line and run for test.
You will then find the invalid statement.
I actually did try doing this debugging - but not through out the entire script. Now its done and this is the code I used for the output I get:

CODE USED:
Code:
...
                         echo "BEFORE NESTED ELSE"#DEBUG
                 else
                         echo "I am not ready to backup, first download and delete the above mentioned contents of the $landingDir landing direct
ory."
                         work="NOT starting"
                         echo "AFTER NESTED ELSE"#DEBUG
                 fi #ENDIF FOR ERROR CHECKING
         echo "AFTER NESTED IF" #DEBUG
 else
         echo "Directory $landingDir does not exist, creating it now"
         work="STARTING"
         mkdir $landingDir
 fi #ENDIF LANDING DIR. CHECK
 
 echo "PAST LANDING DIR. CHECK" #DEBUG
 
 # MAIN MODULE: PARAMETERS, ERROR CHECK, TAR, GZIP
 if [ "$work" = "STARTING" ]
 then
         echo "INSIDE INITIAL IF - STARTER" #DEBUG

OUPUT REC'V:
Code:
...
Continuing backup sequence, as there are no old tars in the backup directory ./download/
BEFORE NESTED ELSE#DEBUG
AFTER NESTED IF
PAST LANDING DIR. CHECK
backup.sh: 29: Syntax error: end of file unexpected (expecting "fi")

Moved down a line to 29 because of the debugger echos i've inserted? not very helpful, as far as I can tell.

Incase anyone else sees this (and no it doesn't solve the syntax error):

I hadn't added an "else" to the most outer layer "if" statement (labeled "# MAIN MODULE: PARAMETERS, ERROR CHECK, TAR, GZIP") so I moved one of the lines a few spots downward to sit in-between the last two "fi" statements, like so (bottom of script):
Code:
                fi #ENDIF BACKUP DIR. CHECK
         else
                echo "Backup sequence ended early."
fi #ENDIF FOR MAIN MODULE


Last edited by jzacsh; 05-19-2009 at 11:34 AM..
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

a very annoying problem

hi i got fbsd here,when i try to start my X server as an user I got hte following error. Fatal server error: xf86OpenConsole: Server must be running with root permissions You should be usig Xwrapper to start the server or xdm. We strongly advise against making the server SUID root! But... (2 Replies)
Discussion started by: Stormpie
2 Replies

2. Shell Programming and Scripting

Very ANNOYING Problem - Please Help

Hey Guys I have an extremely annoying problem with regular expressions! At this point i believe the command 'read' is causing the problem due to the carriage return it places once its done. I have an continuous loop until the input is correct: (After initial read statement) while ... (7 Replies)
Discussion started by: shadow0001
7 Replies

3. Post Here to Contact Site Administrators and Moderators

Annoying tooltips

Hi Is there any way to turn off the (often ridiculously big) tooltips that are displayed when hovering over a topic in a topic list? It's driving me nuts. Thx. J (1 Reply)
Discussion started by: jgrogan
1 Replies

4. Shell Programming and Scripting

Help understanding syntax error Issue

Hi i as you may already know i am creating a menu driven program. I have chosen to take the approach of implementing each interface individually, after adding another interface and attempting to run the program i am faced with the following error: ./Assigntest: line 32: syntax error near... (6 Replies)
Discussion started by: warlock129
6 Replies

5. Shell Programming and Scripting

Need help understanding perl script error

I solicited this site earlier this week and got a good answer for a perl Script so I made this script from what understood from the answers But now I have a bug and I'm stump. It doesn't parse correctly the Output it stays on the first line My $f2 and reprints in a endless loop I'm sure there... (3 Replies)
Discussion started by: Ex-Capsa
3 Replies

6. UNIX for Advanced & Expert Users

Annoying in VI editor

Dear all, I try to search " ( double quote ) in a file using vi editor, I gave in the command mode /" it supposed to take to me to all the occurnces of " instead in some places it is taking me to different character.! It happens with some other characters in that file.... can you... (5 Replies)
Discussion started by: shahnazurs
5 Replies

7. Shell Programming and Scripting

Syntax error, not understanding the issue?

Close please. Refer to following thread: Sub Menu issues (2 Replies)
Discussion started by: Banned
2 Replies

8. IP Networking

Lack of IP Connectivity

Hi Can any one please help identify the issue in scenario 2: Connectivity Diagram: 1) Distribution Switch----Int_Switch----LabSwitch(Fa1/0)----Terminal Ser 2) Distribution Swtich----Int_Swtich----LabSwitch(Fa2/0)----3640 Router ---all links are access links Distribution Switch... (0 Replies)
Discussion started by: sureshcisco
0 Replies

9. Shell Programming and Scripting

How do I get out of the annoying > in bash???

Occasionally I make a mistake in my shell that results in there being a > for the prompt instead of the normal $. Today I accidentally left off a " in a sed command, sed s/\"//g" infile > outfile and then I get $ sed s/\"//g" infile > outfile > > I have never figured out how to get... (3 Replies)
Discussion started by: LMHmedchem
3 Replies
All times are GMT -4. The time now is 02:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy