Thanks for the help. Your pointers certainly have helped made my code run better.
Well, probably they have helped some parts of your script run at all. In the meantime i have found some other syntactical errors and probable logic errors:
Quote:
Originally Posted by Wesley545
The script works correctly for all hosts except a relatively small group.
Sorry to say that, but more likely is the script produces the expected result out of pure chance with many hosts and isn't so lucky on the others.
First, have a look at these three lines:
Variable names are case sensitive, therefore "$TotalAdrFOUND" will always be empty because it is never used nor given any value before. I suppose this to be a typing error, but this check (whatever it is for) can never have worked in the expected way.
Now for the probable cause of your visible problems:
To be honest this is by far the ....ahem.... most creatively phrased piece of code i ever saw. I needed several passes to even understand what it does.
If i get you correctly you have one or several IP addresses in $args. Now you want to take them one at a time in $IP and get the corresponding host names from a list stored in a file, reading it one by one, yes?
First, do not use a normal variable to store tabular data. This is what arrays are for. Now bash treats all variables in a pipeline local to this pipeline, so the following looks a little more clumsy than in ksh, but anyway:
This replaces the "$args" variable with an array with IP values. Test if they are correctly stored with the following:
Do the same with the host names. You just replace "address" with "A longer name" in the awk statement and replace the array name (like, say "DNS"). The logic stays the same.
Instead of this:
you just use:
The construct "${#arrayname[*]}" is the number of elements stored in the array.
Now, instead of writing the DNS names into a temporary file first, then reading them back from there again, you simply do the following:
I've noted that in order to use commands like ifconfig, I have to prefix the commands with the directory.
/etc/profile shows that the paths should be part of the PATH environment variable; any idea where the bug is?
:confused:
# /etc/profile
# System wide environment and startup... (1 Reply)
In a bash script I've set a variable that is the directory name of where an executable lives.
the_dir=`dirname $which myscript`
which equates to something like "/path/to/dir/bin"
I need to cut that down to remove the "bin" so I now have "/path/to/dir/".
This sounds easy but as a... (2 Replies)
Hi all,
if for example I had a variable containing the string 'hello', is the any way I can output, for example, the e and the 2nd l based on their position in the string not their character (in this case 2 and 4)?
any general pointers in the right direction will be much appreciated, at... (3 Replies)
Hello,
I have a paramter $param consisting just of two literals and want to split it into two parameters, so I can combine it to a new parameter <char1><string><char2>, but the following code didn't work:
tmp_PARAM_1=cut -c1 $PARAM
tmp_PARAM_2=cut -c2 $PARAM... (2 Replies)
Hi ,I am trying to assign string to variable ,but it doesn't work
Also could you show me different ways to use grep,(I am trying to get the first,second and first column form file,and I am counting the chars)
let name=`grep "$id" product | cut -c6-20` (25 Replies)
Hi
I am very new to using BASH, but I have a problem with a piece of script that I have been working on. Basically the script goes through a mailbox file looking at particular aspects of the file, for example how many spamwords there are email address etc. It does this pretty well except for an... (13 Replies)
Hello,
Why is this not working in a script?
files="test.fsa"
echo $files
for file in $files
do
if
then
echo "$file does not exist."
fi
run a command
done
I get an error saying (3 Replies)
Hi,
I've been stuck for several days on this. Using grep on a command line, I can use quotes, eg...
grep 'pattern of several words' filename
I want to do this in my bash script. In my script I have captured the several command line arguments (eg arg1 arg2) into a variable:
variable=$@
I... (2 Replies)
I'm trying to write a basic bash script that takes input you give (what directory, if any, what name, if any ....) and passes the information to find.
I'm trying to just create a string with all variables and then pass it to find. So far I have this extremely simple:
#!/bin/bash -f
... (2 Replies)
Hi All;
I have 2 variable let's say $A and $B. These are actually some remotely executed command outputs. I captured these values in my local variables. Here is my problem. When I try to do some arithmetic operation with these variables, I receive an error message. Neither expr nor typeset -i... (3 Replies)