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
Imager::Test(3pm)					User Contributed Perl Documentation					 Imager::Test(3pm)

NAME
Imager::Test - common functions used in testing Imager SYNOPSIS
use Imager::Test 'diff_text_with_nul'; diff_text_with_nul($test_name, $text1, $text2, @string_options); DESCRIPTION
This is a repository of functions used in testing Imager. Some functions will only be useful in testing Imager itself, while others should be useful in testing modules that use Imager. No functions are exported by default. FUNCTIONS
Test functions is_color1($color, $grey, $comment) Tests if the first channel of $color matches $grey. is_color3($color, $red, $green, $blue, $comment) Tests if $color matches the given ($red, $green, $blue) is_color4($color, $red, $green, $blue, $alpha, $comment) Tests if $color matches the given ($red, $green, $blue, $alpha) is_fcolor1($fcolor, $grey, $comment) is_fcolor1($fcolor, $grey, $epsilon, $comment) Tests if $fcolor's first channel is within $epsilon of ($grey). For the first form $epsilon is taken as 0.001. is_fcolor3($fcolor, $red, $green, $blue, $comment) is_fcolor3($fcolor, $red, $green, $blue, $epsilon, $comment) Tests if $fcolor's channels are within $epsilon of ($red, $green, $blue). For the first form $epsilon is taken as 0.001. is_fcolor4($fcolor, $red, $green, $blue, $alpha, $comment) is_fcolor4($fcolor, $red, $green, $blue, $alpha, $epsilon, $comment) Tests if $fcolor's channels are within $epsilon of ($red, $green, $blue, $alpha). For the first form $epsilon is taken as 0.001. is_image($im1, $im2, $comment) Tests if the 2 images have the same content. Both images must be defined, have the same width, height, channels and the same color in each pixel. The color comparison is done at 8-bits per pixel. The color representation such as direct vs paletted, bits per sample are not checked. Equivalent to is_image_similar($im1, $im2, 0, $comment). is_imaged($im, $im2, $comment) is_imaged($im, $im2, $epsilon, $comment) Tests if the two images have the same content at the double/sample level. $epsilon defaults to the platform DBL_EPSILON multiplied by four. is_image_similar($im1, $im2, $maxdiff, $comment) Tests if the 2 images have similar content. Both images must be defined, have the same width, height and channels. The cum of the squares of the differences of each sample are calculated and must be less than or equal to $maxdiff for the test to pass. The color comparison is done at 8-bits per pixel. The color representation such as direct vs paletted, bits per sample are not checked. isnt_image($im1, $im2, $comment) Tests that the two images are different. For regressions tests where something (like text output of "0") produced no change, but should have produced a change. test_colorf_gpix($im, $x, $y, $expected, $epsilon, $comment) Retrieves the pixel ($x,$y) from the low-level image $im and compares it to the floating point color $expected, with a tolerance of epsilon. test_color_gpix($im, $x, $y, $expected, $comment) Retrieves the pixel ($x,$y) from the low-level image $im and compares it to the floating point color $expected. test_colorf_glin($im, $x, $y, $pels, $comment) Retrieves the floating point pixels ($x, $y)-[$x+@$pels, $y] from the low level image $im and compares them against @$pels. is_color_close3($color, $red, $green, $blue, $tolerance, $comment) Tests if $color's first three channels are within $tolerance of ($red, $green, $blue). Test suite functions Functions that perform one or more tests, typically used to test various parts of Imager's implementation. image_bounds_checks($im) Attempts to write to various pixel positions outside the edge of the image to ensure that it fails in those locations. Any new image type should pass these tests. Does 16 separate tests. mask_tests($im, $epsilon) Perform a standard set of mask tests on the OO image $im. Does 24 separate tests. diff_text_with_nul($test_name, $text1, $text2, @options) Creates 2 test images and writes $text1 to the first image and $text2 to the second image with the string() method. Each call adds 3 "ok"/"not ok" to the output of the test script. Extra options that should be supplied include the font and either a color or channel parameter. This was explicitly created for regression tests on #21770. Helper functions test_image_raw() Returns a 150x150x3 Imager::ImgRaw test image. test_image() Returns a 150x150x3 8-bit/sample OO test image. Name: "basic". test_image_16() Returns a 150x150x3 16-bit/sample OO test image. Name: "basic16" test_image_double() Returns a 150x150x3 double/sample OO test image. Name: "basic_double". test_image_gray() Returns a 150x150 single channel OO test image. Name: "gray". test_image_gray_16() Returns a 150x150 16-bit/sample single channel OO test image. Name: "gray16". test_image_mono() Returns a 150x150 bilevel image that passes the is_bilevel() test. Name: "mono". test_image_named($name) Return one of the other test images above based on name. color_cmp($c1, $c2) Performs an ordering of 3-channel colors (like <=>). colorf_cmp($c1, $c2) Performs an ordering of 3-channel floating point colors (like <=>). AUTHOR
Tony Cook <tony@develop-help.com> perl v5.14.2 2012-05-11 Imager::Test(3pm)
All times are GMT -4. The time now is 10:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy