Sponsored Content
Full Discussion: Problem with If statement
Top Forums UNIX for Beginners Questions & Answers Problem with If statement Post 303026480 by Ralph on Wednesday 28th of November 2018 02:06:29 PM
Old 11-28-2018
Quote:
Originally Posted by ginrkf
Hi All,

Code I am using is given below.

HTML Code:
if [ "$run" -eq "1" ] -a [ [ -f /tmp/start.Lck || -f /tmp/stop.Lck ] ]
        then
....

else
...

fi
I am not understanding what is the issue here.
The problem is that you use -a outside the brackets. The -a and -o operators belong to the test/[ ] command and can't be used outside. Then on the right side you use the || inside the brackets but the test/[] command doesn't understand || but only -o. Outside the [] use && instead of -a.

This works for me here:

Code:
#!/bin/bash
run=1

if [ "$run" -eq "1" ] && [ -f ~/.bashrc -o -f ~/.vimrc ]
then
   echo bingo
fi

This User Gave Thanks to Ralph For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

if statement problem

I keep getting an error at line 21, it doesn't like my if statement. Previously I have tried using (( )), but still get errors. The current error is that server_busy is not found. This is the script: #! /bin/ksh server_busy="na" for file in $1 $2 $3 $4 $5 $6 do echo " ${file}\t\c" ... (1 Reply)
Discussion started by: coughlin74
1 Replies

2. Shell Programming and Scripting

problem with an IF statement

I need an IF statement that will compare the contents of the variable CX with the actual string "CP". ie. If the contents of $CX are NOT equal to the actual string "CP" then blah blah blah. I have tried a number of things including the following....... if ]; then if ]; then if ];... (2 Replies)
Discussion started by: hcclnoodles
2 Replies

3. UNIX for Dummies Questions & Answers

if statement problem

hi all. i just have a very small problem. i have a menu of 7 choices. i want an if statement so that if the user chooses anything except inside the 1 to 7 range, i can handle the error for it. i tried this: if ] then ....... fi (but it dont work) ...any suggestions? ... (4 Replies)
Discussion started by: djt0506
4 Replies

4. Shell Programming and Scripting

If Statement Problem..

The problem I am having here is that only the 1st option is executed, no matter if I pick yes or no. What am I doing wrong? How can I get this working right without resorting to a case statement? echo "This is the max size your lvol can be:" echo $MAXSIZE echo echo Do you want to max out... (2 Replies)
Discussion started by: LinuxRacr
2 Replies

5. UNIX for Dummies Questions & Answers

if statement problem

See https://www.unix.com/shell-programming-scripting/96846-if-statement-problem.html (0 Replies)
Discussion started by: f_o_555
0 Replies

6. Shell Programming and Scripting

if statement problem

Hi I have a bash script like this if then echo "A" else echo "B" fi $1 is something like 02350 (there is always a trailing '0') and I would like to have an if based on the value of the digits after the 0. Can anybody help? Thanks, Sarah (3 Replies)
Discussion started by: f_o_555
3 Replies

7. UNIX for Dummies Questions & Answers

Having problem with if statement

Could someone help me out with this if statement? It's supposed to get a person's website, but it isn't working when I run it. website="" echo "Would you like to enter a website? Enter Yes/No" read choice if then while do echo "Please enter a website:"; read... (4 Replies)
Discussion started by: Sotau
4 Replies

8. Shell Programming and Scripting

if statement problem

Writing my script and I'm banging my head on the desk right now ... My biggest problem is the 3rd IF statement where I check if the username exists. Doing the grep command on it's own in the shell gives me a 1 or 0 value. Running the script, it always returns a false value (runs the ELSE... (4 Replies)
Discussion started by: ADay2Long
4 Replies

9. Shell Programming and Scripting

while statement problem

Hi, Here is a big head scratcher for me.... I'm creating a loop with while reading lines from a file called example.txt: #!/bin/sh while read line do some command > another file ----- output to another file done < example.txt I would like that another file to be unique for every... (5 Replies)
Discussion started by: svetoslav_sj
5 Replies

10. Shell Programming and Scripting

Problem if statement

echo "Enter the variable: " " read var1 echo " " for i in ib eb atm do if ; then mv properties environment.properties break else echo "No changes to $var1 " fi done When i run and enter the eb it's not working.Any suggestions please.. (7 Replies)
Discussion started by: bhas85
7 Replies
test(1sh5)																test(1sh5)

Name
       test - condition evaluation command

Syntax
       test expr
       [ expr ]

Description
       The  command  evaluates the expression expr.  If the value of expr is true, the command returns a zero exit status; otherwise, it returns a
       nonzero exit status.  The command also returns a nonzero exit status if no arguments are specified.  The following primitives are  used	to
       construct expr:

       -r file	      True if file exists and is readable.

       -w file	      True if file exists and is writable.

       -x file	      True if file exists and is executable.

       -f file	      True if file exists and is a regular file.

       -d file	      True if file exists and is a directory.

       -c file	      True if file exists and is a character special file.

       -b file	      True if file exists and is a block special file.

       -p file	      True if file exists and is a named pipe (fifo).

       -u file	      True if file exists and its set-user-ID bit is set.

       -g file	      True if file exists and its set-group-ID bit is set.

       -k file	      True if file exists and its sticky bit is set.

       -s file	      True if file exists and has a size greater than zero.

       -t [ fildes ]  True if the open file whose file descriptor number is fildes (1 by default) is associated with a terminal device.

       -z s1	      True if the length of string s1 is zero.

       -n s1	      True if the length of the string s1 is non-zero.

       s1 = s2	      True if strings s1 and s2 are identical.

       s1 != s2       True if strings s1 and s2 are not identical.

       s1	      True if s1 is not the null string.

       n1 -eq n2      True  if	the integers n1 and n2 are algebraically equal.  Any of the comparisons -ne, -gt, -ge, -lt, and -le may be used in
		      place of -eq.

       These primitives can be combined with the following operators:

       !	      unary negation operator.

       -a	      binary and operator.

       -o	      binary or operator (-a has higher precedence than -o).

       ( expr )       parentheses for grouping.

       Note that all the operators and flags are separate arguments to the command.  Note also that parentheses are meaningful to  the	Shell  and
       must  be  escaped.   In the form of the command that uses square brackets ([]), instead of the word test, the brackets must be delimited by
       blanks.

See Also
       find(1), sh5(1), test(1)

																	test(1sh5)
All times are GMT -4. The time now is 07:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy