02-27-2012
Creating bash array name from variable
Hi gurus,
I need to create arrays from variables, via a loop.
The issue I have is with the array name creation. How do I use a variable to define an array?
I want to do something like
declare -a $H
where $H is my loop variable.
I then need to add items to each array I've created, something like this
$H=( ${$H[@]} "$I")
$I is the variable I'm using to loop in the array items.
I'm guessing that I'll need to use eval but nothing I've tried works. Escaping non-printable characters doesn't work either.
I can define an empty array using the $H variable, but I'm unable to add items to it or print out the full array item list.
I have no problems when defining a non-variable array name, but I need to create over 100 lookup tables, with number of items ranging from 1 to 10 -15 for each array, all from loop.
Any suggestions would be most welcolmed
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi all,
i am quite fimiliar with shell scripting but i wouldn't regard myself as a semi professional at it.
I am trying to create an array variable to read in 4 lines from a file using head and tail command in a pipeline and store each line into each array. I have done the scripting in unix... (2 Replies)
Discussion started by: scriptingmani
2 Replies
2. Programming
I am facing a strange error while creating posix threads:
Given below are two snippets of code, the first one works whereas the second one gives a garbage value in the output.
Snippet 1
This works:
--------------
int *threadids;
threadids = (int *) malloc (num_threads * sizeof(int));
... (4 Replies)
Discussion started by: kmehta
4 Replies
3. Shell Programming and Scripting
hi all i am trying to save an awk value into an array in bash:
total=`awk '{sum+=$3} END {print sum}' "$count".txt"`
((count++))
the above statement is in a while loop..
$count is to keep track of file numbers (1.txt,2.txt,3.txt,etc.)
i get the following error:
./lines1:... (1 Reply)
Discussion started by: npatwardhan
1 Replies
4. Shell Programming and Scripting
#!/bin/ksh
#export CLASSPATH=$CLASSPATH:~dialp/cso/classes:/opt/oracle/product/8.1.6/jdbc/lib/classes12.zip
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/product/8.1.6/lib
DATE="`date '+%m%d%Y'`"
PATH=.:$PATH
export PATH
town_name='123'
town_name='123'
town_name='345'... (1 Reply)
Discussion started by: priyanka3006
1 Replies
5. Shell Programming and Scripting
Hi,
Can someone help me with creating a bash shell script.
I need to create a script that gets a positive number n as an argument.
The script must create n directories in the current directory with names like map_1, map_2 etcetera. Each directory must be contained within its predecessor. So... (7 Replies)
Discussion started by: I-1
7 Replies
6. Shell Programming and Scripting
I would like to create a variable within my bash script using awk. I'm reading in a line from an external file, then outputting to a new file in a specific format. But, it doesnt quite work as I have expected and could use some help.
(A pertinent excerpt of ) the bash code is:
count=1
... (4 Replies)
Discussion started by: snoitacilppa
4 Replies
7. Shell Programming and Scripting
Trying to do some control flow parsing based on the index postion of an array member. Here is the pseudo code I am trying to write in (preferably in pure bash) where possible. I am thinking regex with do the trick, but need a little help.
pesudo code
if == ENDSINFIVEINTS ]]; then
do... (4 Replies)
Discussion started by: briandanielz
4 Replies
8. Shell Programming and Scripting
while i've used arrays to work with variables, i've never used them to loop through a set of strings and wanted to ask the community for some feedback or assistance.
let me be specific. here's my code:
# URL port Variables
port2195=`nc -z $url2195 2195`
port2196=`nc -z $url2196 2196`... (5 Replies)
Discussion started by: hungryd
5 Replies
9. Shell Programming and Scripting
Hello,
I have a simple task and I am having some trouble with the syntax. I have a variable with an assigned value,
CMD_STRING='-L 22 -s 0 -r -O -A i -N 100 -n'
I would like to add that variable to an array. As far as I have been able to look up, the syntax should be something like,
... (4 Replies)
Discussion started by: LMHmedchem
4 Replies
10. Shell Programming and Scripting
hello,
i need a bit of help on how to do this effectively in bash without a lot of extra looping or massive switch/case
i have a long array of M elements and a short array of N elements, so M > N always. M is not a multiple of N.
for case 1, I want to stretch N to fit M
arrayHuge
H = (... (2 Replies)
Discussion started by: f77hack
2 Replies
COMPACT(3) 1 COMPACT(3)
compact - Create array containing variables and their values
SYNOPSIS
array compact (mixed $varname1, [mixed $...])
DESCRIPTION
Creates an array containing variables and their values.
For each of these, compact(3) looks for a variable with that name in the current symbol table and adds it to the output array such that
the variable name becomes the key and the contents of the variable become the value for that key. In short, it does the opposite of
extract(3).
Any strings that are not set will simply be skipped.
PARAMETERS
o $varname1
-compact(3) takes a variable number of parameters. Each parameter can be either a string containing the name of the variable, or
an array of variable names. The array can contain other arrays of variable names inside it; compact(3) handles it recursively.
RETURN VALUES
Returns the output array with all the variables added to it.
EXAMPLES
Example #1
compact(3) example
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state");
$result = compact("event", "nothing_here", $location_vars);
print_r($result);
?>
The above example will output:
Array
(
[event] => SIGGRAPH
[city] => San Francisco
[state] => CA
)
NOTES
Note
Gotcha
Because variable variables may not be used with PHP's Superglobal arrays within functions, the Superglobal arrays may not be passed
into compact(3).
SEE ALSO
extract(3).
PHP Documentation Group COMPACT(3)