Sponsored Content
Top Forums Shell Programming and Scripting 'AND' boolean not working !!!! Post 302781671 by Don Cragun on Sunday 17th of March 2013 12:15:52 PM
Old 03-17-2013
Quote:
Originally Posted by emily
Hi Don,
Yeah, I just realized (and figured out one fallacy) that I need to pass it like

Code:
if ["$jobNo" == Null -a "$jobNo1" != Null ]; then
do something with jobNo1

elif ["$jobNo" != Null -a "$jobNo1" == Null ]; then
do something with jobNo

elif ["$jobNo" == Null -a "$jobNo1" == Null ]; then
echo "BOTH NULL, existing "

elif ["$jobNo" != Null -a "$jobNo1" == Null]; then
do something with both $jobNo,$jobNo1

Can you help me in passing these as elif ["$jobNo" != Null -a "$jobNo1" == Null]; ?

Will it work elif ["$jobNo" != "" -a "$jobNo1" == ""]; ??
Also, in the previous script, it was never passing the "do someting" for both
string as NULL command. So I assumed that I did pass them correctly.

Thanks
emily
No! No! No! No! No! No! Smilie

First, none of your awk scripts print the string "Null", so comparing the output produced by one of your awk scripts to the string Null is a waste of time; no matter what your input files contain, you already know what the result of the comparison will be.

Second, there has to be a space after the [ and before the ] in:
Code:
if [ expression ]

Third, although some shells may accept it as an extension to the standards, there is no == binary string comparison primitive for the test or [ commands.

And fourth, you don't have a fi to terminate your if statement.

I'm guessing that you want something more like:
Code:
if [ "$jobNo" = "" -a "$jobNo1" != "" ]; then
        printf "Job(s) cancelled: %s\n" "$jobNo1"
elif [ "$jobNo" != "" -a "$jobNo1" = "" ]; then
        printf "Job(s) with non-zero wrapper exit status: %s\n" "$jobNo"
elif [ "$jobNo" = "" -a "$jobNo1" = "" ]; then
        echo "No jobs with non-zero wrapper exit status and no jobs cancelled."
elif [ "$jobNo" != "" -a "$jobNo1" != "" ]; then
        printf "Job(s) with non-zero wrapper exit status: %s\n" "$jobNo"
        printf "Job(s) cancelled: %s\n" "$jobNo1"
fi

or, equivalently:
Code:
if [ -z "$jobNo" -a -n "$jobNo1" ]; then
        printf "Job(s) cancelled: %s\n" "$jobNo1"
elif [ -n "$jobNo" -a -z "$jobNo1" ]; then
        printf "Job(s) with non-zero wrapper exit status: %s\n" "$jobNo"
elif [ -z "$jobNo" -a -n "$jobNo1" ]; then
        echo "No jobs with non-zero wrapper exit status and no jobs cancelled."
else    printf "Job(s) with non-zero wrapper exit status: %s\n" "$jobNo"
        printf "Job(s) cancelled: %s\n" "$jobNo1"
fi

or:
Code:
if [ ! "$jobNo" ] && [ "$jobNo1" ]; then
        printf "Job(s) cancelled: %s\n" "$jobNo1"
elif [ "$jobNo" ] && [ ! "$jobNo1" ]; then
        printf "Job(s) with non-zero wrapper exit status: %s\n" "$jobNo"
elif [ ! "$jobNo" ] && [ ! "$jobNo1" ]; then
        echo "No jobs with non-zero wrapper exit status and no jobs cancelled."
else    printf "Job(s) with non-zero wrapper exit status: %s\n" "$jobNo"
        printf "Job(s) cancelled: %s\n" "$jobNo1"
fi

Obviously you'll want to replace the printf and echo statements with the processing you want to perform, but this gives you three equivalent runnable sequences of commands that will verify that you have correctly adjusted the logic in your if statement tests.
This User Gave Thanks to Don Cragun For This Post:
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

trying to get a boolean response from sed

I have a file coming in with many columns, but the first character of the the coumn is a record type, if I wanted to get a true/false kind of response as to whether it contains at least one of each type of record how would be best? sed -e '/01/!d; /02/!d; /03/!d; /04/!d' datafile returns... (4 Replies)
Discussion started by: badg3r
4 Replies

2. Shell Programming and Scripting

boolean parameter

Hi, I'm calling an oracle procedure from shell script, this procedure has boolean parameter, the default is false, but I need to pass true value to the procedure... how can I do that in shell script , below is my script: ################ Initialise Environment ################# initialise()... (0 Replies)
Discussion started by: aya_r
0 Replies

3. Shell Programming and Scripting

set boolean after comparison

Hi there, Sorry if the title doesn't mean much to you, I don't know how to sum up my pb in one line. I'd like to set a value to 0 or 1 depending on the result of a comparison. Here's what I do: supernova:~# a= supernova:~# isempty=$(] && echo 1 || echo 0) supernova:~# echo $isempty 1... (4 Replies)
Discussion started by: chebarbudo
4 Replies

4. Shell Programming and Scripting

Boolean expression issues

Hi everybody: I'm working on a script to send emails with logs attached based on one single rule..."check if the number of errors has increased since the last time the script ran" Basically what my script does is read from a previous file with the last trace of errors the previous error... (3 Replies)
Discussion started by: hyunkel_01
3 Replies

5. UNIX for Advanced & Expert Users

Find Boolean operators help

I was reading this find guide and I saw something with the -and option that I don't think is correct. Do you need the -and option in this? $ find /mp3-collection -name 'Metallica*' -and -size +10000k I found my file that was bigger than 500 MB with and without the -and option. ~ $ find /... (1 Reply)
Discussion started by: cokedude
1 Replies

6. Homework & Coursework Questions

Boolean expressions for If's

1. The problem statement, all variables and given/known data: Im experimenting with if expressions for an assignment. What i want to do is check if an input of read x y z will be checked against x for 1-999 for y for and for z for 1-999. Am i doing this right? or perhaps you could tell me... (0 Replies)
Discussion started by: Ren_kun
0 Replies

7. Shell Programming and Scripting

boolean expression in bash

Can someone, please, help me to make this condition valid/accepted in bash? I really cannot. I'm stuck with the brackets... This one tells me: missing `]' if ]; then # NOTIFY ERROR... fi And... I'd also appreciate a link to bash documents that explain these things. All... (2 Replies)
Discussion started by: mamboknave
2 Replies

8. Shell Programming and Scripting

Boolean expression

hi, im learning python language. and my teacher gives me this question on class: Boolean expression : not (p or not q) what is the correct answer for that? i still dont understand, and please give me a link for a new beginner in python to learn. thanks (1 Reply)
Discussion started by: jazzyzha
1 Replies

9. UNIX for Dummies Questions & Answers

If statement with two boolean conditions

#!/bin/bash if && then echo "True" else echo "False" fi Hi everyone, I am new to UNIX, here I have a if statement elevating two boolean conditions. I thought the output should be True because there are + in the statement. But it turns out to be False. Can anyone... (3 Replies)
Discussion started by: mryuyu1111
3 Replies
All times are GMT -4. The time now is 07:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy