Bash 3d associative array with bash3 AND multiple files
Hello again guru’s (big apologies for wall of text)
Still working on that DNS updater for my production team and while there is a ton of hit in searches i can't seem to find the answer to this.
Context:
We have apps that switch from let’s say host1 to host2. REAL basic DNS clustering if you like.
The autosys process goes like this:
- Connect to the DNS.
- modify Aliases files:
Files are straight up modified by cp.
- Hosts_to_named script recreates the named.conf file
- Restart named
Now the logical thing would be to give each application team the nsupdate commands so they have complete control over the DNS process BUT like in many companies they want US to make it work and if everything works well make the teams individually make the transition.
SOOO at first I tought…. Let’s build an associative array… Bash3 … dang.
Well that sucks…
How about this…
toto = key
host1 = value
That seems to work … but it doesn’t. For a reason I can’t explain I can’t guaranty that the value is associated with the key
How can I make sure I my association is correct?
BONUS ROUND
One thing I forgot to mention is that when I’ll have my key=value I will be able to build my nsupdate request. Fine and dandy BUT thing is I have 1000 records in my aliases files….
With the old process, flat files do not put a burden on the host. Restart dns and be done with it. With 1000 nsupdate request everytime ONE app is switched (delete the old value, prereq nxrrset and put the new in) that will probably be not very good my server (maybe not but i'll test for sure).
SO I tought… what If I check that only files that where modified today? Since autosys process does a simple basic cp.
So normally something like this should be perfect?
But again I cannot guaranty perfect key=value
If somebody has a clue that would be great!
Thanks.
---------- Post updated at 11:09 AM ---------- Previous update was at 07:59 AM ----------
What if i do .....
Include a : between my key and value and parse threw my array using parameter substitution?
That will read into 5 variables, of which the dummy variable "_" will consume items 2, 3, and 5+. KEY will assume the first field's content, and VALUE the fourth's.
read splits the line into fields like word splitting (using IFS) and assigns to each name given. It is common practice to use _ as a place holder for unused fields. If I left out the final _ and the line had more than 4 fields, the remainder would end up in $value
I hope this helps
This User Gave Thanks to neutronscott For This Post:
I am trying to assign indexes to an associative array in a for loop but I have to use an eval command to make it work, this doesn't seem correct I don't have to do this with regular arrays
For example, the following assignment fails without the eval command:
#! /bin/bash
read -d "\0" -a... (19 Replies)
Hello together,
i make something wrong... I want an array that contains information to associate it for further processing.
Here is something from my bash... You will know, what I'm trying to do.
I have to point out in advance, that the variable $SYSOS is changing and not as static as in my... (2 Replies)
Continuing my quest to learn BASH, Bourne, Awk, Grep, etc. on my own through the use of a few books. I've come to an exercise that has me absolutely stumped.
The specifics:
1. Using ONLY BASH scripting commands (not sed, awk, etc.), write a script to convert a string on the command line to... (22 Replies)
Hi all
I have a problem where i have a large list ( up to 1000 of items) and need to have 2 items pulled from it into variables in a bash script
my list is like the following and I could have it as an array or possibly an external text file maintained separately. Every line is different and... (6 Replies)
I have an associative array named table
declare -A table
table="fruit"
table="veggie"
table="GT"
table="eminem"
Now say I have a variable returning the value highway
How do I find corresponding value GT ??
(this value that I find (GT in this case) is supposed to be the name of a mysql... (1 Reply)
Hi
Input:
{ committed = 782958592; init = 805306368; max = 1051394048; used = 63456712; }
Result:
A map (maybe Associative Array) where I can iterate through the key/value. Something like this:
for key in $map
do
echo key=$key value=$map
done
Sample output from the map:
... (2 Replies)
Hi All,
I got stuck up with shell script where i use awk. The scenario which i am working on is as below.
I have a file text.txt with contents
COL1 COL2 COL3 COL4
1 A 500 400
1 B 500 400
1 A 500 200
2 A 290 300
2 B 290 280
3 C 100 100
I could able to sum col 3 and col4 based on... (3 Replies)
i have a file like this
< '393200103052';'H3G';'20081204'
< '393200103059';'TIM';'20110111'
< '393200103061';'TIM';'20060206'
< '393200103064';'OPI';'20110623'
> '393200103052';'HKG';'20081204'
> '393200103056';'TIM';'20110111'
> '393200103088';'TIM';'20060206'
Now i have to generate a file... (9 Replies)
Hi,
When using sort on an associative array:
foreach $key (sort(keys(%opalfabet))){
$value = $opalfabet{$key};
$result .= $value;
}
How does it handle double values?
It seems to me that it removes them, is that true? If so, is there a way to get... (2 Replies)
Hi,
I am trying to make an associative array to use in a popup_menu on a website. Here is what i have:
foreach $entr ( @entries )
{
$temp_uid = $entr->get_value(uid);
$temp_naam = $entr->get_value(sn);
$s++;
}
This is the popup_menu i want to use it in.
popup_menu(-name=>'modcon',... (4 Replies)