Sponsored Content
Full Discussion: Create Dynamic if condition
Top Forums Shell Programming and Scripting Create Dynamic if condition Post 302943651 by sea on Monday 11th of May 2015 12:45:46 PM
Old 05-11-2015
I love arrays:
Code:
#!/bin/bash
C=1
declare -A  BALL

while read color;do
	BALL[${color,,}]=$C
	C=$(( $C + 1 ))
done<"${0/sh/txt}"

echo "Ball $1 is worth ${BALL[${1,,}]}"

Have a good week Smilie

EDIT-Note:
My files were named identical but with another file extension (sh/txt).
Though, to be accurate for snooker values, the colors would need to be in order.

EDIT2:
Outputs like:
Code:
+ bin $ sh ~/tmp/sample.sh pink
Ball pink is worth 6
:) bin $ sh ~/tmp/sample.sh red 
Ball red is worth 1

EDIT3 - Explanation:
Code:
C=1
declare -A  BALL

Sets variable C to 1, and declares varable BALL as ALPHA indexed Array. (not quiet sure on the ALPHA label, ity my 'donkey-bridge')

Code:
while read color;do
....
done<"${0/sh/txt}"

Read from file $0 (the execute[d|r] script), but remove first occourence of sh with txt within its filename,
expand each line to the only passed variable color.
Since the (in this example) used scriptname and content-file-name are identical but their file extension not, this works quite fine.

Code:
	BALL[${color,,}]=$C
	C=$(( $C + 1 ))

${color,,} makes the content of variable color to small letters, since usualy people forget to press shift when passing options or arguments to commands.
So it set the array index $color to value $C, then increment that value. (could be shortened to ((C++)) in this case, or ((counter++)) whatsoever you use for an index/counter)

Code:
echo "Ball $1 is worth ${BALL[${1,,}]}"

Finaly we print out the the desired information. 'downcode' the passed argument to small letters, just to be sure, so it matches the array index, which is now set to letters (the color names).

hth

Last edited by sea; 05-11-2015 at 03:46 PM..
These 2 Users Gave Thanks to sea For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to create a dynamic list?

Hi falks, I need to write a function in k-shell which cd to root directory and ask the user which sub directory you want to tar. The user will select directories untill quit. How to do it? Thanks in advance, Nir (4 Replies)
Discussion started by: nir_s
4 Replies

2. Shell Programming and Scripting

how to create folder wen the condition satisfied

hi i hav files ha1j ha2m ha3n ha4q ha5s ...like tat im having some 20 files ..and i want to create a folder as the same amount of files which im having wen the condition if loop is satisfied .. thank you (5 Replies)
Discussion started by: maximas
5 Replies

3. UNIX for Advanced & Expert Users

Sql dynamic table / dynamic inserts

I have a file that reads File (X.txt) Contents of record 1: rdrDESTINATION_ADDRESS (String) "91 971502573813" rdrDESTINATION_IMSI (String) "000000000000000" rdrORIGINATING_ADDRESS (String) "d0 movies" rdrORIGINATING_IMSI (String) "000000000000000" rdrTRAFFIC_EVENT_TIME... (0 Replies)
Discussion started by: magedfawzy
0 Replies

4. 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

5. Shell Programming and Scripting

redirect stdout echo command in condition A run in condition B

hi, I have some problems in my simple script about the redirect echo stdout command inside a condition. Why is the echo command inside the elif still execute in the else command Here are my simple script After check on the two diff output the echo stdout redirect is present in two diff... (3 Replies)
Discussion started by: jao_madn
3 Replies

6. UNIX for Dummies Questions & Answers

Create a condition for a non-included string

hey, just want to ask how to check this scenario a="apple banana cherry" if egg=0 fi how do you do the condition? thanks! (2 Replies)
Discussion started by: h0ujun
2 Replies

7. Shell Programming and Scripting

Help Create dynamic ksh script from a script

I am currently running 2 scripts to gather data for a 3rd script and would like to combine the 2 scripts into one. Having issues with the final output format. Note cannot post URL so replaced the http stuff with (name) in the examples All scripts contain #!/bin/ksh OS = Red Hat Enterprise... (0 Replies)
Discussion started by: pcpinkerton
0 Replies

8. Shell Programming and Scripting

Create, validate and using dynamic variables in Bash scripting

Hi All, I am really struggling to solve this problem, this might be small but I am not able to, can somebody help me? I have few directories and these directories receives text files in large amount with in fraction of seconds. So I just want to send all the files in current directory to... (2 Replies)
Discussion started by: VasuKukkapalli
2 Replies

9. UNIX for Dummies Questions & Answers

Create a file on UNIX with multiple columns on certain condition

I need to write the list of files to a new file in one column , the second column would contain the first line of that file (header record extracted through head -1 ) and the third column would contain the last record of that file (trailer record tail -1 ) . Example :- folder where the files... (8 Replies)
Discussion started by: IshuGupta
8 Replies

10. UNIX for Advanced & Expert Users

How to create folder by using if and elif condition?

Hi All, I have already code to create folder for one country let say US , now we want to create folder/directory for JP country also using shell script , application server. $COUNTRY='US' if ] then if mkdir -m 777 -p /opt/TEST/$COUNTRY/$INVOICE >/dev/null 2>&1 | tee -a ... (5 Replies)
Discussion started by: Boost
5 Replies
All times are GMT -4. The time now is 11:02 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy