Visit Our UNIX and Linux User Community


Multiple condition checking in bash


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Multiple condition checking in bash
# 1  
Old 08-12-2011
Multiple condition checking in bash

Hi All,
I am trying to check if two variables have value assigned to it.
i am doing it like
Code:
if [[ -n "$host_name" && -n "$host_file" ]]
then
    echo "Please specify either single hostname or host file for the report"
    usage
    exit
fi

But its not working for it.Even i specify values for both variables it dont go inside if.
what i am doing wrong in this?
Appreciate your help.
# 2  
Old 08-12-2011
# 3  
Old 08-12-2011
thanks latika

---------- Post updated at 05:48 AM ---------- Previous update was at 05:24 AM ----------

Question:

Why i cant use and( && ) as i did above?

Anyone can please explain to me?
# 4  
Old 08-12-2011
Your code is right for at least ksh93, bash and zsh. Give the full script and version of your shell.
# 5  
Old 08-17-2011
Hi,
I am using bash :

here's the code:
Code:
#!/bin/bash

usage()
{
    cat << EOF
usage: $0 options

This script genrates the report in xls format.

OPTIONS:
   -h      Show this message
   -s      Start date for the report(format: yyyy/mm/dd).
   -e      End date for the report(format: yyyy/mm/dd).
   -m      hostname fot which report is generated
   -f      hostfile(each host in new line)

Don't specify option(m,f) if you need to generate for all hosts.
EOF
}
start_date=
end_sate=
host_name=
host_file=

while getopts "hs:e:m:f" OPTION
do
    case $OPTION in
        h)
            usage
            exit 1
            ;;
        s)
            start_date=$OPTARG
            ;;
        e)
            end_date=$OPTARG
            ;;
        m)
            host_name=$OPTARG
            ;;
        f)
            host_file=$OPTARG
            ;;
        ?)
            usage
            exit
            ;;
    esac
done
if [ -z $start_date ]
then
    echo "Please specify start date for the report"
    usage
    exit
elif [ -z $end_date ]
then
    echo "Please specify end date for the report"
    usage
    exit
fi
if [[ -n "$host_name" && -n "$host_file" ]]
then
    echo "Please specify either single hostname or host file for the report"
    usage
    exit
fi

echo $start_date
echo $end_date
echo $host_name
echo $host_file

Cant figure out why its not working.

---------- Post updated 08-17-11 at 12:30 AM ---------- Previous update was 08-16-11 at 04:30 AM ----------

can anyone please help?
# 6  
Old 08-17-2011
Your var "host_file" gets the previous value of $OPTARG. Just add a colon.
Code:
   -f      hostfile(each host in new line)

...
Code:
while getopts "hs:e:m:f:" OPTION

...
Code:
        f)
            host_file=$OPTARG

With "set -x" or bash debugger you could see what happens.
This User Gave Thanks to yazu For This Post:
# 7  
Old 08-17-2011
Thanks a lot yazu.... wonder why i was not able to detect it.

Humans(like me) are so stupid sometimes Smilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #828
Difficulty: Medium
JSON and ECMAScript 2018 both allows the Unicode line terminators U+2028 LINE SEPARATOR and U+2029 PARAGRAPH SEPARATOR to appear unescaped in quoted strings.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need Multiple checks inside if condition in a bash shell script

Hi, I need to perform the untar and rm operation if the file found is a .tar and does not have test.tar or hello.tar as the file names. Below is the loop to check the same. for tf in *.tar do if ] then found=1 ... (1 Reply)
Discussion started by: mohtashims
1 Replies

2. Shell Programming and Scripting

Condition checking issue while if

hi, i am using a simple condition end_ct=`sqlplus -s $ORACLE_USER/$ORACLE_PASS@$ORACLE_SID << EOF select description from bravo_statistics where trunc(time_stamp)=trunc(sysdate)-1 and description='END CAT'; EOF` echo $end_ct; echo... (30 Replies)
Discussion started by: lovelysethii
30 Replies

3. Shell Programming and Scripting

Condition checking in UNIX

i have a script where i have to find the age of a file, if then echo "dnb file is present for the monthly load" >> $RUNLOG dnb="1" else echo "dnb file has not arrived yet" > $ERRLOG dnb="0" fi i know the file is available so... (3 Replies)
Discussion started by: lovelysethii
3 Replies

4. Shell Programming and Scripting

Checking file existence along with condition

Hi am trying to write a script which find the existence of a file from a find command output and perform a task if the file exists. Help me out with the correct syntax . Am trying with the following one but unable to get the output. if then <some tasks> else echo "file not exists" fi (5 Replies)
Discussion started by: rogerben
5 Replies

5. Shell Programming and Scripting

create separate file after checking condition..

Problem : I want to create a separate file for country list if condition is true. Please help. ***************************************************** Input file: SV-INCR-139302-365540488-201104090934.sqllog SV-INCR-1082-552793184-201104040805.sqllog SV-INCR-1077-855045741-201104040805.sqllog... (4 Replies)
Discussion started by: humaemo
4 Replies

6. Shell Programming and Scripting

Unzip file By checking condition.

Hi.. Gurus I Have a list of .zip files in a directory. I want to check whether each .zip file having some particular file or not (say .jsp) if it's having .Jsp file then create a directory as per the .zip file and extract the content to that directory except the .jsp file, If .zip not having... (3 Replies)
Discussion started by: posix
3 Replies

7. Shell Programming and Scripting

sed solution for condition checking

Hi all , Recently i came across this in FAQ's. I have a file cat rem.txt sreedhar 20 sreedhar 10 sreedhar 15 sreedhar 18 sreedhar 16 sreedhar 30 I have to replace sreedhar with "Sridhar" if the second parameter is > 18. I need to do it in "sed" only. I am wondering how this... (4 Replies)
Discussion started by: panyam
4 Replies

8. Shell Programming and Scripting

bash if loop for checking multiple parameters

Hello, I've got next problem: I want to examine at the beginning of a script in an if loop that: 1. Is there 4 parameters given 2. If first state is true then: is there switches -e and -d? 3. At the end, how can i indentify them as variebles regardlees to its order. I was thinking like... (2 Replies)
Discussion started by: szittyafergeteg
2 Replies

9. Shell Programming and Scripting

Checking condition inside the loop

Hi all, I have one clarification i am using the loop which will process for each record .suppose there is f ailure in the first record it need to send mail and process the next .my code: defcount=`cat <filename>|wc -l` while ] do if <some condiotion> then echo "mail" fi done so... (1 Reply)
Discussion started by: ithirak17
1 Replies

10. Shell Programming and Scripting

Condition checking

Dear all That's another problem from me, i wanna do a lot of if statement checking for correct input by user, will be prompt input again if the input not meet the requirement defined by If or while statement... like this one .... while I know it's less effiency write the program... (14 Replies)
Discussion started by: trynew
14 Replies

Featured Tech Videos