Sponsored Content
Top Forums Shell Programming and Scripting multiple conditions in if statements Post 20513 by Jimbo on Sunday 28th of April 2002 09:42:39 AM
Old 04-28-2002
On assignments to a variable, do x= instead of $x= .

When you use a mixture of -o and -a, you might have to control precedence. In the following, the first line would test true because -o has precedence:
if [ a = a -o b = b -a c = C ]
But add parentheses (you would need to backslash these) and it would now test false:
if [ ( a = a -o b = b ) -a c = C ]

Also, when checking for several values, a case statement makes for nice clean code, and even more handy when each value will result in a different action:
Code:
case $x in
 +|-|/|%) x=$vr1;;
       *) print "You have entered an invalid option."
          exit 1;;
esac

Jimbo
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

multiple 'if' statements out of array

I want to do multiple comparisons on a series of numbers from an array: I send the numbers in file1 through want to print out some info from file2 based on some conditions. The syntax just isn't correct??? awk ' NR==FNR{ a=$0 next ... (2 Replies)
Discussion started by: dcfargo
2 Replies

2. Shell Programming and Scripting

if then statements with two conditions...?

Is it possible to setup two conditions for an if then statement in a pbash script? For example, depending on the text value of a variable I parse out of an xml file, I want to assign it a numerical values. Example: if ; then VAR="25" fi if ; then VAR="25" fi Can these two... (3 Replies)
Discussion started by: audiophile
3 Replies

3. Shell Programming and Scripting

Help regarding multiple conditions

Hi All, I am new to shell scripting. Can any one say what is wrong in this if statement, that uses multiple conditions if then *************** else if ( -z $pcs && "$night_time_calc" > "$night_time" ) then ******************************** ... (4 Replies)
Discussion started by: ssenthilkumar
4 Replies

4. Shell Programming and Scripting

How do I execute multiple statements within If then else

Please help me. I have been doing this for several hours. Here is the code if then echo a b c d >> file.txt echo 1111 >> file.txt fi The reason I want the two echo is because I want these statements printed on multiple lines. I keep getting error . First it tells me... (2 Replies)
Discussion started by: asemota
2 Replies

5. Shell Programming and Scripting

Running multiple if statements

Hi, Hav automated a process, and it is working fine. for first process alone status = ` ps -ef |grep a ` if then echo " Success" > temp/logfile else echo " Failure" > temp/logfile fi Now I hav to write script to automated some 2 process and then send mail using cron.. ... (5 Replies)
Discussion started by: NehaKrish
5 Replies

6. Shell Programming and Scripting

execute multiple statements in if-else

how can we execute multiple statements in else condition i have if then statement else statements fi in else condition i have multiple statements but it executing only one statement is there any way to execute multiple statements (4 Replies)
Discussion started by: nani1984
4 Replies

7. Shell Programming and Scripting

Multiple if Statements

Hi All, I need to check for 3 conditions and if all the 3 are not satified need to say that services are not running.... is the below code correct. #********** Check to see if Service 1 is still running************** if then echo "$datetimestamp: Service1 is not running" >>... (4 Replies)
Discussion started by: ch33ry
4 Replies

8. Shell Programming and Scripting

Multiple while statements?

I'm working on a script for class as a final project. We have to ask for values (city, state, zip) five times, but the state can only be MI, IN, IL, or OH. I'm trying to do this with a while loop inside of a while loop, but I have no idea how to do it properly. Here's what I have so far: ... (3 Replies)
Discussion started by: nickzourdos
3 Replies

9. UNIX for Dummies Questions & Answers

Multiple if statements

exmaple: file1 and file2 has 1 bit if then exit else send out email fi if then exit else send out email fi it exits the 1st if. did not continue with my 2nd if. thanks in advanced. Please use CODE tags are suggested on every page when you post an item in... (7 Replies)
Discussion started by: lawsongeek
7 Replies

10. Shell Programming and Scripting

Using multiple 'for' statements

Hello, I am new to scripting and I am trying to write a simple script that creates users and adds their passwords from two files; one a user list file and another a password list file. For example, I have two files already. $ cat file1 andy stephane aby paul $ cat file2 123 234... (4 Replies)
Discussion started by: FemoTheDon
4 Replies
vc(1)							      General Commands Manual							     vc(1)

Name
       vc - version control program

Syntax
       vc [-a] [-t] [-cchar] [-s] [keyword=value... keyword=value]

Description
       The  command  copies lines from the standard input to the standard output under control of its arguments and control statements encountered
       in the standard input.  In the process of performing the copy operation, user declared keywords may be replaced by their string value  when
       they appear in plain text and/or control statements.

       The  copying  of  lines from the standard input to standard output is conditional.  It is based on tests (in control statements) of keyword
       values specified in control statements or as command arguments.

       A control statement is a single line beginning with a control character, except as modified by the -t keyletter (see below).   The  default
       control character is colon (:), except as modified by the -c keyletter (see below).  Input lines beginning with a backslash () followed by
       a control character are not control lines and are copied to the standard output with the backslash removed.  Lines beginning with  a  back-
       slash followed by a noncontrol character are copied in their entirety.

       A  keyword  is  composed of 9 or fewer alphanumerics; the first must be alphabetic.  A value is any ASCII string that can be created with A
       numeric value is an unsigned string of digits.  Keyword values should contain blanks or tabs.

       Replacement of keywords by values occurs whenever a keyword surrounded by control characters is encountered on a version control statement.
       The  -a keyletter (see below) forces replacement of keywords in all lines of text.  An uninterpreted control character may be included in a
       value by preceding it with .  If a literal  is desired, then it too must be preceded by .

Options
       Keyletter arguments:

       -a Replaces the keywords surrounded by control characters in all text lines.

       -cchar
	  Specifies a control character to be used in place of :.

       -s Suppresses all warning messages.

       -t Ignores all characters from the beginning of the line to the first tab character.  If one is found, all characters up to  and  including
	  the tab are discarded.

Version Control Statements:
       :dcl  keyword[, ..., keyword]
	    Used to declare keywords.  All keywords must be declared.

       :asg keyword=value
	    Used  to  assign  values to keywords.  An asg statement overrides the assignment for the corresponding keyword on the command line and
	    all previous asg's for that keyword.  Keywords declared, but not assigned values have null values.

       :if condition
	    .
	    .
	    .
       :end
	    Used to skip lines of the standard input. If the condition is true all lines between the if statement and the matching  end  statement
	    are  copied  to  the  standard  output.  If the condition is false, all intervening lines are discarded, including control statements.
	    Note that intervening if statements and matching end statements are recognized solely for the purpose of maintaining the proper if-end
	    matching.
	    The syntax of a condition is:

	     <cond>  ::= [ "not" ] <or>
	     <or>    ::= <and> | <and> "|" <or>
	     <and>   ::= <exp> | <exp> "&" <and>
	     <exp>   ::= "(" <or> ")" | <value> <op> <value>
	     <op>    ::= "=" | "!=" | "<" | ">"
	     <value> ::= <arbitrary ASCII string> | <numeric string>

	    The available operators and their meanings are:

	       =      equal
	       !=     not equal
	       &      and
	       |      or
	       >      greater than
	       <      less than
	       ( )    used for logical groupings
	       not    may only occur immediately after the if, and
		      when present, inverts the value of the
		      entire condition

	    The  >  and  < operate only on unsigned integer values.  For example, : 012 > 12 is false).  All other operators take strings as argu-
	    ments.  For example, fB: 012 != 12 is true).  The precedence of the operators (from highest to lowest) is:
	       = != > <      all of equal precedence
	       &
	       |
	    Parentheses can be used to alter the order of precedence.
	    Values must be separated from operators or parentheses by at least one blank or tab.

       ::text
	    Used for keyword replacement on lines that are copied to the standard output.  The two leading control  characters	are  removed,  and
	    keywords  surrounded  by  control  characters  in text are replaced by their value before the line is copied to the output file.  This
	    action is independent of the -a keyletter.

       :on

       :off
	    Turn on or off keyword replacement on all lines.

       :ctl char
	    Change the control character to char.

       :msg message
	    Prints the given message on the diagnostic output.

       :err message
	    Prints the given message followed by:
		 ERROR: err statement on line ... (915)
	    on the diagnostic output.  The command halts execution, and returns an exit code of 1.

Diagnostics
       Use for explanations.

Exit Codes
       0 - normal
       1 - any error

																	     vc(1)
All times are GMT -4. The time now is 06:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy