If && command giving wrong output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting If && command giving wrong output
# 1  
Old 07-07-2014
If && command giving wrong output

Hi All,

I am trying to run a script which will search for 2 strings(stopped,started) in a text file and echo an output depending on below condition

Code:
 
-bash-3.2$ cat trial1.txt
v
ggg
f

Code:
 
-bash-3.2$ cat trial1.sh
VAR9=` grep 'stopped' /tmp/trial1.txt`
VAR10=` grep 'started' /tmp/trial1.txt`
if [ -n $VAR9 ] && [ -z $VAR10 ]
then
    echo "No"
else
   echo "Yes"
fi

The above code should echo "Yes" as VAR9 is definitely null. But it is echoing no.

Please help!
# 2  
Old 07-07-2014
if [ -n ] is evaluated to true - either quote your variables, or use [[ ... ]] instead.

Code:
if [ -n "$VAR9" ] && [ -z "$VAR10" ]

# 3  
Old 07-07-2014
Not directly related to the question, but an alternative is to use grep's return code:
Code:
if grep -q stopped /tmp/trial1.txt && ! grep -q started /tmp/trial1.txt
then

This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 07-07-2014
This alternative processes the input file only once:
Code:
awk '/stopped/ {++stopped} /started/ {++started} END {if (stopped && ! started) exit 1}' /tmp/trial1.txt
if [ $? -eq 1 ]
then

# 5  
Old 07-08-2014
Thanks guys, all the answers helped.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Read input while another command is running &&

This script runs tshark, then displays the output. I want to read a keypress at all times throughout this script, especially during the 10 seconds that tshark is running. This code however, only takes input before tshark runs. #!/bin/bash main() { while (( "1" == "1" )) ; do keypress &&... (3 Replies)
Discussion started by: Kiah07
3 Replies

2. Shell Programming and Scripting

Check & use output of svcs command

Hello Dear Friends, I need to check output of svcs command and so the status of some instances. -bash-3.00$ svcs -a | grep rfe online Aug_04 svc:/application/rfe/rfe_master_3:default online Aug_04 svc:/application/rfe/rfe_master_4:default as you can see there are two... (1 Reply)
Discussion started by: EAGL€
1 Replies

3. Shell Programming and Scripting

[Solved] BASH - chaining TEST and COMMAND with && and II

Can you explain what this line of script is doing. What I have understood is : -- variable C is the name of a software which is either not installed, so it must be installed or allready installed and then should be update if newer version found -- branch B="$B $C" is to install the software --... (4 Replies)
Discussion started by: jcdole
4 Replies

4. Shell Programming and Scripting

Problem with call of Java Programm & return code handling & output to several streams.

Hello Everybody, thanks in advance for spending some time in my problem. My problem is this: I want to call a java-Programm out of my shell skript, check if die return code is right, and split the output to the normal output and into a file. The following code doesn't work right, because in... (2 Replies)
Discussion started by: danifunny
2 Replies

5. Shell Programming and Scripting

PHP read large string & split in multidimensional arrays & assign fieldnames & write into MYSQL

Hi, I hope the title does not scare people to look into this thread but it describes roughly what I'm trying to do. I need a solution in PHP. I'm a programming beginner, so it might be that the approach to solve this, might be easier to solve with an other approach of someone else, so if you... (0 Replies)
Discussion started by: lowmaster
0 Replies

6. UNIX for Dummies Questions & Answers

Problem with xterm & tcsh & sourcing a script in a single command

Hi friends, I have a script that sets the env variable path based on different conditions. Now the new path variable setting should not done in the same terminal or same shell. Only a new terminal or new shell should have the new path env variable set. I am able to do this only as follows: >cd... (1 Reply)
Discussion started by: sowmya005
1 Replies

7. Shell Programming and Scripting

tr command giving wrong output

Hi All, i have a file which have many fields delimited by ,(comma) now i have to show only few fields and not all. the sample text file looks like this: TYPE=SERVICEEVENT, TIMESTAMP=05/06/2009 11:01:40 PM, HOST=sppwa634, APPLICATION=ASComp, FUNCTION=LimitsService, SOU... (8 Replies)
Discussion started by: usha rao
8 Replies

8. UNIX for Dummies Questions & Answers

sleep 10 && command doesn't work

Hi there, I found a trick to easily postpone a command by a few seconds: supernova:~# sleep 10 && command &If you logout, the command should still be executed... But not all the time. Could anyone of you explain me why the following command is executed even after logging out: supernova:~# sleep... (2 Replies)
Discussion started by: chebarbudo
2 Replies

9. Shell Programming and Scripting

Sort command giving wrong output

Hi all, I have a problem with sort command. i have a file which looks like this: "file1 1073 java/4 1073 java/180 1073 java/170 1073 java/176 1073 java/167 1073 java/40 1073 java/33 1073 java/136 28988 java/76 28988 java/73 28988 java/48 28988 java/26" and i want to sort... (8 Replies)
Discussion started by: usha rao
8 Replies

10. Shell Programming and Scripting

What's wrong with this sed command? delete & append

I want to write a sed command that does the following work: file: <a>asdfasdf<\s> <line>hello</line> <b>adf<\c> <b>tttttttt<\c> output: name=hello sed -e 's/^*//' -n -e '/<line>/s/<*>//gp;' -e 's/^/name="/g' file but I can not append "=" after getting the line with... (5 Replies)
Discussion started by: minifish
5 Replies
Login or Register to Ask a Question