To return the elements of array


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting To return the elements of array
# 1  
Old 08-03-2007
To return the elements of array

Hi,
Please can someone help to return the array elements from a function. Currently the problem I face is that tempValue stores the value in myValue[] as a string while I need an array of values to be returned instead of string.

Many Thanks,
Sudhakar

the function called is:

get_config_values_from_mediation_cfg()
{
i=0
tempValue=`grep $1 $CONFIG_FILENAME |
awk '
BEGIN {
FS = "="
count = 0
i = 0
}
NF == 2 && !/^#/ {
gsub(/"/, "") # Remove stroke characters
gsub(" ", "") # Remove spaces
gsub("\n", "") # Remove new line character
checkForCommentSymbol = index ( $2, "#" )
if ( checkForCommentSymbol == 0 )
myValue[i] = $2
else
myValue[i] = substr( $2, 1, checkForCommentSymbol - 1 )

count++
i++
}
END {
if ( count == 0 )
print "NO_VALUE"
else if ( count == 1 )
print myValue
else
#print "INVALID_VALUES"
for (j=0; j<=i; j++)
print myValue[j]
}
'`
echo "${tempValue[@]}"
}
===============================================


echo "Configuration Parser Processing $1"

echo "**********************************************************************"
echo "PROTOCOLS:"
myProtocolTypes=`get_config_values_from_mediation_cfg "PROTOCOL_TYPE"`
echo "returned array: ${myProtocolTypes[@]}"
echo "again: ${myProtocolTypes[0]}"
echo "again: ${myProtocolTypes[1]}"
echo "again: ${myProtocolTypes[2]}"
#for (i=0; i<3; i++)
for i in 0 1 2
do
echo "once more: ${myProtocolTypes[$i]}"
done
awk ' {split ($1, a, " "); print a[1]} ' $myProtocolTypes
#awk ' {split (myProtocolTypes, a,); print a[1]} '

echo "FILENAME_PATTERNS:"
echo `get_config_values_from_mediation_cfg "FILENAME_PATTERN"`
echo "MODES:"
echo `get_config_values_from_mediation_cfg "MODE"`
echo "CONFIG_FILENAMES:"
echo `get_config_values_from_mediation_cfg "CONFIG_FILENAME"`
# 2  
Old 08-03-2007
Check this :

Code:
get_config_values_from_mediation_cfg()
{
echo | awk '/'"$1"'/
        BEGIN {
                FS = "="
                count = 0
                i = 0
        }
        NF == 2 && !/^#/ {
                gsub(/"/, "")   # Remove stroke characters
                gsub(" ", "") # Remove spaces
                gsub("\n", "") # Remove new line character
                checkForCommentSymbol = index ( $2, "#" )
                if ( checkForCommentSymbol == 0 )
                        myValue[i] = $2
                else
                        myValue[i] = substr( $2, 1, checkForCommentSymbol - 1 )
 
                count++
                i++
        }
        END {
                if ( count == 0 )
                        print "NO_VALUE"
                else if ( count == 1 )
                        print myValue
                else
                        #print "INVALID_VALUES"
                        for (j=0; j<=i; j++)
                        print myValue[j]
        }
' $CONFIG_FILENAME
}
===============================================
 

echo "Configuration Parser Processing $1"

echo "**********************************************************************"
echo "PROTOCOLS:"
i=0
get_config_values_from_mediation_cfg "PROTOCOL_TYPE"|while read myProtocolTypes[${i}]
do
  (( i += 1 ))
done
echo "returned array: ${myProtocolTypes[@]}"
echo "again: ${myProtocolTypes[0]}"
echo "again: ${myProtocolTypes[1]}"
echo "again: ${myProtocolTypes[2]}"

# 3  
Old 08-03-2007
To return the elements of array

Many thanks.
# 4  
Old 08-06-2007
the first value is blank

Hi,

Please can you someone help me out to eliminate the problem. Here, it correctly prints the myFilenameCount but returns the first value of array myFilenamePatterns as blank.

Thanks,
Sudhakar

i=0
get_config_values_from_mediation_cfg "FILENAME_PATTERN"|while read myFilenamePatterns[${i}]
do
echo "FilenamePattern: ${myFilenamePatterns[$i]}"
(( i += 1 ))
done
myFilenameCount=${i}
echo $myFilenameCount
echo "returned array: ${myFilenamePatterns[@]}"
i=0
while [ $i -lt $myFilenameCount ]
do
echo "FilenamePatterns: ${myFilenamePatterns[${i}]}"
(( i += 1 ))
done

Last edited by Sudhakar333; 08-06-2007 at 08:01 AM..
# 5  
Old 08-06-2007
Quote:
Originally Posted by Klashxx
Check this :

Code:
get_config_values_from_mediation_cfg()
{
echo | awk '/'"$1"'/
        BEGIN {
                FS = "="
                count = 0
 
....

Must be:
Code:
get_config_values_from_mediation_cfg()
{
awk '/'"$1"'/
        BEGIN {
                FS = "="
                count = 0

# 6  
Old 08-06-2007
Please, read the rules:
Quote:
(4) Do not 'bump up' questions if they are not answered promptly. No duplicate or cross-posting and do not report a post or send a private message where your goal is to get an answer more quickly.
No duplicate postings:
https://www.unix.com/shell-programmin...rns-blank.html
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help reading the array and sum of the array elements

Hi All, need help with reading the array and sum of the array elements. given an array of integers of size N . You need to print the sum of the elements in the array, keeping in mind that some of those integers may be quite large. Input Format The first line of the input consists of an... (1 Reply)
Discussion started by: nishantrefound
1 Replies

2. Shell Programming and Scripting

Random elements from array

Hi I wanted to print random elements from an array at bash shell I use the following code, but I always see first element getting printed #!/bin/bash c=1 expressions=(pink red white yellow purple) while ]; do echo "The value of RANDOM is $RANDOM" selectedexpression=${expressions}]};... (5 Replies)
Discussion started by: Priya Amaresh
5 Replies

3. Programming

Array Elements Check

Hi everyone, :) I'm trying to make a simple C program that scans an array of chars to see if its elements are similar. I can't understand what's wrong. Could you help me to fix this? Here is the code. Thanks! #include<stdio.h> int main() { int arr; int i, len; int flag =... (10 Replies)
Discussion started by: IgorGest
10 Replies

4. Shell Programming and Scripting

Multiplication of array elements

Hi, I can't find out how to create correct code to get multiplication of each elements of array. Let's say I enter array into command line (2 3 4 5 6 8) and i need output 2*3*4*5*6*8=5760. I tried this one, but answer is 0. for i in $@; do mult=$((mult*i))done echo "mult: " $mult ... (4 Replies)
Discussion started by: rimasbimas
4 Replies

5. Shell Programming and Scripting

Grouping array elements - possible?

I have a script which takes backup of some configuration files on my server. It does that by using an array which contains the complete path to the files to backup. It copys the files to a pre defined dir. Each "program" has it's own folder, ex. apache.conf is being copied to /predefined... (7 Replies)
Discussion started by: dnn
7 Replies

6. Shell Programming and Scripting

Removing elements from an array

Hi I have two arrays : @arcb= (450,625,720,645); @arca=(625,645); I need to remove the elements of @arca from elements of @arcb so that the content of @arcb will be (450,720). Can anyone sugget me how to perform this operation? The code I have used is this : my @arcb=... (3 Replies)
Discussion started by: rkrish
3 Replies

7. Shell Programming and Scripting

Array with String Elements

How can I get my array to understand the double-quotes I'm passing into it are to separate text strings and not part of an element? here's what I'm working with... db2 -v connect to foo db2 -x "select '\"' || stats_command || '\",' from db2law1.parallel_runstats where tabname = 'BAZ'" set... (4 Replies)
Discussion started by: djschmitt
4 Replies

8. Shell Programming and Scripting

Accessing array elements

Hi, My doubt is how to access array elements.. Situation is as below: #!/bin/ksh set -x typeset -i x=0 typeset -i y=0 typeset -i BID=0 typeset -i count=0 while ] ; do x=`expr $x + 1`; hwmgr show scsi > scsi.tmp while read line; do set... (1 Reply)
Discussion started by: mansa
1 Replies

9. UNIX for Dummies Questions & Answers

Deleting Array Elements

Hi, I am writing a BASH shell script. I have an array that will contain IN ANY ORDER the following elements: DAY 8D MO NS. I would like to erase the element DAY, but since the order of the elements in the array are random, I will not know which element # DAY is (ie it's not as simple as... (3 Replies)
Discussion started by: msb65
3 Replies

10. Shell Programming and Scripting

how to return an array of elements from oracle to shell script

Hi all, I have a interresting problem. My application is as follows: From a shell script i will conn to a oracle database and fetch few rows using a select statement. Then i want to sort these rows and return a column (collection of values of a column from the selected results) as array... (3 Replies)
Discussion started by: satyakiran
3 Replies
Login or Register to Ask a Question