Nested If question


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Nested If question
# 1  
Old 10-10-2007
Nested If question

if [[ -a ${LOGFILE} ]]; then
if [[ -a ${LOGFILE}.old ]]; then
rm -f ${LOGFILE}.old
fi
mv ${LOGFILE} ${LOGFILE}.old
fi

Havent done nested ifs in a while. I'm reading someones code If I'm reading this correctly. It checks for the logfile, and if it exists it checks for the old logfile and if that exists, it removes the old log file. Else it moves the logfile to the logfile.old. Someone correct me if I'm wrong, thanks.
# 2  
Old 10-10-2007
You have it right. Except the -a should maybe be a -f because -a means "and" which makes no sense in what you posted
# 3  
Old 10-10-2007
Quote:
Originally Posted by jim mcnamara
You have it right. Except the -a should maybe be a -f because -a means "and" which makes no sense in what you posted
Not my code, just a copy and paste. But I was wondering what the -a meant. I guess the -f means file. Thanks.
# 4  
Old 10-10-2007
See the man page for test -- man test
it has all of those -<whatever> tests and tells you their meaning. -f tells you if it is a regular file and exists, for example.
# 5  
Old 10-10-2007
Quote:
Originally Posted by NycUnxer
if [[ -a ${LOGFILE} ]]; then
if [[ -a ${LOGFILE}.old ]]; then
rm -f ${LOGFILE}.old
fi
mv ${LOGFILE} ${LOGFILE}.old
fi

Havent done nested ifs in a while. I'm reading someones code If I'm reading this correctly. It checks for the logfile, and if it exists it checks for the old logfile and if that exists, it removes the old log file. Else it moves the logfile to the logfile.old. Someone correct me if I'm wrong, thanks.
not exactly - it will 'move the logfile to the logfile.old' regardLESS whether the 'old logfile' exists or not - there is no 'ELSE' in the inner 'if'.

Last edited by vgersh99; 10-10-2007 at 05:39 PM..
# 6  
Old 10-10-2007
Then this makes less sense. Wouldnt the move overwrite whats there if the old one exists anyway? I dont see the reason for the remove then.
# 7  
Old 10-10-2007
what about this- is this what u r looking for?

if [[ -s ${LOGFILE} ]] && [[ [[ -s ${LOGFILE}.old ]]; then
rm -f ${LOGFILE}.old
mv ${LOGFILE} ${LOGFILE}.old
fi


cheers,
Devaraj Takhellambam
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

[Solved] Nested If

I am having a problem with a nested if. I am sure I am overlooking something. I check for the existence of $Pidfl3 and it exists, o this condition I then want to check for the existence of a next file and remove it. The first if is executed, but on the second if I get test: argument expected. My... (4 Replies)
Discussion started by: Charles Swart
4 Replies

2. Shell Programming and Scripting

Nested if else

Hi, i m trying to create script which logic is like below. if ; then x=`cat /tmp/testoutput.log | grep STOP | wc -l` y=`cat /tmp/testoutput.log | grep RUN | wc -l` if ; then echo "process stop" if ; then echo "process running " else echo "file not found" fi ----------------... (2 Replies)
Discussion started by: tapia
2 Replies

3. Shell Programming and Scripting

nested if else -error

HI everyone, I am not able to find error in the script, when i run the script till line No. 20 i.e, read var4 everything runs fine. After that the script exits out. #!/bin/bash echo -e "Want dryrun OR merge: \n " read var1 if ] ; then echo -e "\n Please select from the given... (10 Replies)
Discussion started by: rishi.aradhya
10 Replies

4. Shell Programming and Scripting

syntax question in regards to nested awk statements

Hello all, I am writing up an input file and I was hoping I could get some guidance as to how to best consolidate these 2 awk statements for 1 while loop. Here's my input file # cat databases.lst #NOTE: These entries are delimited by tabs "\t" #oracleSID name/pass # db11 ... (2 Replies)
Discussion started by: Keepcase
2 Replies

5. UNIX for Dummies Questions & Answers

Bourne-sh (not bash) question about nested loops and sed

Here's the input: alpha, numeric or alphanumeric string ("line 1 string") numeric string ("line 2 string") numeric string ("line 3 string") numeric string ("line 4 string") ... where - each numeric string is in a pattern that can be matched with RE but - there can be any number of... (2 Replies)
Discussion started by: uiop44
2 Replies

6. Shell Programming and Scripting

Nested if question BASH

Just started learning bash ,and I am confused with sintaksis line 16: syntax error near unexpected token `else' thanks #!/bin/bash echo -n "Enter: " read num if(($(echo ${#num}) == 0 )) then echo No arguments passed.Try again elif rem=$(echo $num | tr -d ) ... (7 Replies)
Discussion started by: lio123
7 Replies

7. UNIX for Dummies Questions & Answers

Nested If statement within Do / Done

Hi all! I'm really hoping you can help me out here; now i have searched and searched and have at least worked out that you can't have a nested if statement with a 'done' in it (as i have) as you're killing the parent before the child. So here's what i have, and here's hoping someone can help... (2 Replies)
Discussion started by: dalgibbard
2 Replies

8. Shell Programming and Scripting

Nested Symlinks?

Please don't laugh or call me a fool... I'm trying to set up a script that will go through my Music File directory and generate a set of symbolic links in a directory called "What's New". Within that directory there will be a "30 Days", "3 Months", "6 Months" and "A Year" directories. Within... (0 Replies)
Discussion started by: deckard
0 Replies

9. Shell Programming and Scripting

nested looping question

Hi, I'm having some trouble with the syntax in constructing a simple nested 'for' loop. My code is as follows: #!/bin/bash dir1="fred flume haystack" for dir2 in ${dir1} do fred="1 2 3" flume="a b c" ... (7 Replies)
Discussion started by: Sn33R
7 Replies
Login or Register to Ask a Question