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
trap(1) 							   User Commands							   trap(1)

NAME
trap, onintr - shell built-in functions to respond to (hardware) signals SYNOPSIS
sh trap [argument n [n2]...] csh onintr [-| label] ksh *trap [arg sig [sig2...]] ksh93 +trap [-p] [action condition...] DESCRIPTION
sh The trap command argument is to be read and executed when the shell receives numeric or symbolic signal(s) (n). (Note: argument is scanned once when the trap is set and once when the trap is taken.) Trap commands are executed in order of signal number or corresponding symbolic names. Any attempt to set a trap on a signal that was ignored on entry to the current shell is ineffective. An attempt to trap on signal 11 (memory fault) produces an error. If argument is absent all trap(s) n are reset to their original values. If argument is the null string this signal is ignored by the shell and by the commands it invokes. If n is 0 the command argument is executed on exit from the shell. The trap command with no arguments prints a list of commands associated with each signal number. csh onintr controls the action of the shell on interrupts. With no arguments, onintr restores the default action of the shell on interrupts. (The shell terminates shell scripts and returns to the terminal command input level). With the - argument, the shell ignores all inter- rupts. With a label argument, the shell executes a goto label when an interrupt is received or a child process terminates because it was interrupted. ksh trap uses arg as a command to be read and executed when the shell receives signal(s) sig. arg is scanned once when the trap is set and once when the trap is taken. Each sig can be specified as a number or as the name of the signal. trap commands are executed in order of signal number. Any attempt to set a trap on a signal that was ignored on entry to the current shell is ineffective. If arg is omitted or is -, then the trap(s) for each sig are reset to their original values. If arg is the null (the empty string, for example, "") string then this signal is ignored by the shell and by the commands it invokes. If sig is ERR then arg are executed whenever a command has a non-zero exit status. If sig is DEBUG then arg are executed after each command. If sig is 0 or EXIT for a trap set outside any function then the command arg is executed on exit from the shell. The trap command with no arguments prints a list of commands associated with each signal number. On this manual page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways: 1. Variable assignment lists preceding the command remain in effect when the command completes. 2. I/O redirections are processed after variable assignments. 3. Errors cause a script that contains them to abort. 4. Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a variable assignment. This means that tilde substitution is performed after the = sign and word splitting and file name genera- tion are not performed. ksh93 trap is a special built-in that defines actions to be taken when conditions such as receiving a signal occur. trap can also be used to dis- play the current trap settings on standard output. If action is -, trap resets each condition to the default value. If action is an empty string, the shell ignores each of the conditions if they arise. Otherwise, the argument action is read and executed by the shell as if it were processed by eval when one of the corresponding conditions arise. The action of the trap overrides any previous action associated with each specified condition. The value of $? is not altered by the trap execution. condition can be the name or number of a signal, or one of the following: EXIT Execute this trap when the shell exits. If defined within a function with the function reserved word, executes the trap in the caller's environment when the function returns. The trap action is restored to the value it had when it called the function. 0 Same as EXIT. DEBUG Execute before each simple command is executed but after the arguments are expanded. ERR Execute whenever set -e would cause the shell to exit. KEYBD Execute when a key is entered from a terminal device. Signal names are case insensitive and the sig prefix is optional. Signals that were ignored on entry to a non-interactive shell cannot trapped or reset although doing so does not report an error. The use of signal numbers other than 1, 2, 3, 6, 9, 14, and 15 are not porta- ble. Although trap is a special built-in, specifying a condition that the shell does not know about causes trap to exit with a non-zero exit status, but does not terminate the invoking shell. If no action or conditions are specified then all the current trap settings are written to standard output. The following options are supported by the trap built-in command in ksh93: -p Causes the current traps to be output in a format that can be processed as input to the shell to recreate the current traps. The trap built-in in ksh93 exits with one of the following values: 0 Successful completion. >0 An error occurred. On this manual page, ksh93(1) commands that are preceded by one or two + (plus signs) are treated specially in the following ways: 1. Variable assignment lists preceding the command remain in effect when the command completes. 2. I/O redirections are processed after variable assignments. 3. Errors cause a script that contains them to abort. 4. They are not valid function names. 5. Words, following a command preceded by ++ that are in the format of a variable assignment, are expanded with the same rules as a variable assignment. This means that tilde substitution is performed after the = sign and word splitting and file name genera- tion are not performed. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
csh(1), eval(1), exit(1), ksh(1), ksh93(1), sh(1), attributes(5) SunOS 5.11 20 Nov 2007 trap(1)
All times are GMT -4. The time now is 08:13 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy