Sponsored Content
Top Forums Shell Programming and Scripting Issue with condition "if then elif else fi" Post 303023344 by MadeInGermany on Friday 14th of September 2018 11:56:12 AM
Old 09-14-2018
First of all, an if-elif-else-fi that queries one variable (here: $1) can be more efficiently done by a case-;;-;;-esac.
Then, if the following code is similar enough for each condition, it is advisable to set variables that control the exact behavior in the following common code.
Example:
Code:
#!/bin/bash
# branch on $1, set distinct variables
case $1 in
("REP1")
    liste=/data/folder1
    text1="LISTEREP1"
    text2="REP1 AND REP2"
;;
("REP2")
    liste=/data/folder2
    text1="LISTEREP2"
    text2="REP1 AND REP2"
;;
("REP3")
    liste=/data2/folder3
    text1="LISTEREP3"
    text2="REP3 AND REP4"
;;
("REP4")
    liste=/data2/folder4
    text1="LISTEREP4"
    text2="REP3 AND REP4"
;;
(*)
    echo "unsupported argument '$1'"
    exit 1
;;
esac

# common code
echo "$text1 : $liste"
liste_rep=$liste/$2/$3
echo "DO LOOP FOR $text2 :${1}" $liste_rep
for printlist in $list_rep
do
   echo "SHOULD_LOOP_${1}:" $liste_rep
done

This User Gave Thanks to MadeInGermany For This Post:
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

2. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

3. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

4. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

5. Shell Programming and Scripting

""Help Me!""Beginner awk learning issue

Hi All, I have just now started learning awk from the source - Awk - A Tutorial and Introduction - by Bruce Barnett and the bad part is that I am stuck on the very first example for running the awk script. The script is as - #!/bin/sh # Linux users have to change $8 to $9 awk ' BEGIN ... (6 Replies)
Discussion started by: csrohit
6 Replies

6. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

7. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
XMLIF(1)																  XMLIF(1)

NAME
xmlif - conditional processing instructions for XML SYNOPSIS
xmlif [attrib=value...] DESCRIPTION
xmlif filters XML according to conditionalizing markup. This can be useful for formatting one of several versions of an XML document depending on conditions passed to the command. Attribute/value pairs from the command line are matched against the attributes associated with certain processing instructions in the docu- ment. The instructions are <?if> and its inverse <?if not>, <?elif> and its inverse <?elif not>, <?else>, and <?fi>. Argument/value pairs given on the command line are checked against the value of corresponding attributes in the conditional processing instructions. An `attribute match' happens if an attribute occurs in both the command-line arguments and the tag, and the values match. An `attribute mismatch' happens if an attribute occurs in both the command-line arguments and the tag, but the values do not match. Spans between <?if> or <?elif> and the next conditional processing instruction at the same nesting level are passed through unaltered if there is at least one attribute match and no attribute mismatch; spans between <?if not> and <?elif not> and the next conditional process- ing instruction are passed otherwise. Spans between <?else> and the next conditional-processing tag are passed through only if no previous span at the same level has been passed through. <?if> and <?fi> (and their `not' variants) change the current nesting level; <?else> and <?elif> do not. All these processing instructions will be removed from the output produced. Aside from the conditionalization, all other input is passed through untouched; in particular, entity references are not resolved. Value matching is by string equality, except that "|" in an attribute value is interpreted as an alternation character. Thus, saying foo='red|blue' on the command line enables conditions red and blue. Saying color='black|white' in a tag matches command-line conditions color='black' and color='white'. Here is an example: Always issue this text. <?if condition='html'> Issue this text if 'condition=html' is given on the command line. <?elif condition='pdf|ps'> Issue this text if 'condition=pdf' or 'condition=ps' is given on the command line. <?else> Otherwise issue this text. <?fi> Always issue this text. FUTURE DIRECTIONS
The mark-up used by this tool is not set in stone, and may change in the near future. AUTHOR
Eric S. Raymond. Sep 26 2002 XMLIF(1)
All times are GMT -4. The time now is 07:45 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy