Need assistance with bash function


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need assistance with bash function
# 1  
Old 03-04-2008
Need assistance with bash function

Hi all!

I need a little help with an imbedded fuction I am trying to write. What I am trying to do is go to a series of hosts and get the contents of an XML file, storing some of the data, along with the name of the host it was gathered from. My intent is to store this in an array for later use in the script, but I am having some issues getting the values I am looking for stored in a variable


Assumptions

PHYSICALS_FILE contains entries for hostnames
hosta
hostb
etc

Inventory.xml contains lots of stuff. I am only concerned about the 5th field on lines matching vmxCfgPath

The problem I am having is when I am trying to store the values from the "cat" line into a variable for later use. I have tried defining this line as a variable, but I think there is either an issue with defining a variable in a for loop, or something is happening when I use the pipe (|).... (see the commented out lines)

The output this gives me thus far is:

hosta
vm_number1
vm_number2
hostb
vm_number1
vm_number2
etc

What I would like to get the output to be is

hosta,vm_number1
hosta,vm_number2
hostb,vm_number1
hostb,vm_number2
etc

any insight you can offer would be greatly appreciated!!



here is my snippit (I am sure there is a better way to get this, but this works for the most part)

Code:
#!/bin/bash
PROG=`basename $0`
PHYSICALS_FILE=$1
determine_phys ()   {


exec 3< $PHYSICALS_FILE
until [ $DONE ]; do
   read <&3 LINE
   if [[ $? != 0 ]]; then
      DONE=1
      continue
   fi
echo $LINE
   if [[ $? = 0 ]]; then
     sudo ssh $LINE <<EOF
        echo $LINE
        cat /path/to/file/vminventory.xml | grep vmxCfgPath |awk -F"/" '{print $5}'
        #VM=`cat /path/to/file/vminventory.xml | grep vmxCfgPath |awk -F"/" '{print $5}'`
        #echo $LINE,$VM
	echo "___________________________________________"
        exit
EOF
   fi
done
}

determine_phys

# 2  
Old 03-05-2008
PHP Fixed it; thanks anyway!

A little bothered that this sat here for 19 hours without a response. I am assuming perhaps I did not give enough details to the issue.

Seems there was an issue with the piping I was using...

for reference; here is the corrected code:

gather_info () {
exec 3< $PHYSICALS_FILE
until [ $DONE ]; do
read <&3 LINE
if [[ $? != 0 ]]; then
DONE=1
continue
fi
exec >> final_report.log 2>&1
if [[ $? = 0 ]]; then
sudo ssh $LINE <<EOF
grep vmxCfgPath /etc/vmware/hostd/vmInventory.xml |cut -d '/' -f 5 >>/tmp/vm_list
cat /tmp/vm_list |sed 's/^/$LINE,/'

rm /tmp/vm_list
exit
EOF
fi
done
}
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash not calling function after completing

In the below bash the function execute is started with the while true at the end of the script. Currently, this works and processing does begin. The function panel in bold does not get called after execute completes, therefore the user does not get the menu selection and the files just loop... (3 Replies)
Discussion started by: cmccabe
3 Replies

2. Shell Programming and Scripting

Bash function problem

I am trying to figure out why I am having a "problem" with some functions in a bash script I am running. The reason for air quoting is that the functions are working, they are just not displaying anything to screen when called from another function. Here's an example: function Create_Input {... (6 Replies)
Discussion started by: dagamier
6 Replies

3. Shell Programming and Scripting

Command not found, but using function in bash

In the bash below, if the answer is "y" then goto function remove. If the answer is "n" then goto the id variable line (where the date is inputted). However, I am getting command remove not found, but remove is a function not an command. I must have the syntax incorrect? Thank you :). ... (3 Replies)
Discussion started by: cmccabe
3 Replies

4. Shell Programming and Scripting

Bash function, for BSD

I am putting this thread to shell-threads, because it is about how to make a function work properly. I need a hint for declaring a function right, it has been more than a year I did not work that straight with bash. So my aim is to turn off the eth0 (as it would be in linux, and bge0 in bsd ),... (2 Replies)
Discussion started by: 1in10
2 Replies

5. Shell Programming and Scripting

Yes or No selection within bash function

I need to add a selection within the bash function below and am having some trouble doing so. phox2b() { printf "\n\n" printf "What is the id of the patient getting Phox2B analysis : "; read id printf "Is this an intronic variant? Y/N "; read match_choice case... (5 Replies)
Discussion started by: cmccabe
5 Replies

6. UNIX for Dummies Questions & Answers

Bash INKEY$ function...

This is probably common knowledge to the professionals but not so much for amateurs like myself. This is a code snippet for the equivalent of BASIC's... LET char$=INKEY$ As the timeout parameter cannot be less than 1 second then this is the only limitation... It is a single line... (5 Replies)
Discussion started by: wisecracker
5 Replies

7. Shell Programming and Scripting

Bash function

startvm() { startguest } Is there a way use one line to get this ? actually I want startvm=startguest (5 Replies)
Discussion started by: yanglei_fage
5 Replies

8. Shell Programming and Scripting

BASH function error

Hey everyone. I am currently testing my first function based BASH script. The ultimate goal is going to be moving logs from point A to point B (or if B is down, to point C). Part of this involves the following function: function testAlive{ ping -c 1 -q $1 } Now when I run ping -c... (1 Reply)
Discussion started by: msarro
1 Replies

9. Shell Programming and Scripting

bash search function

I want to have a function with a similar interface: search *.cpp asdf that will search recursively all directories for *.cpp file, containing line 'asdf' inside. I tried this: function search { find . -name "$1" | xargs grep -li $2; } But it doesn't work all the time. For example, if i run it... (3 Replies)
Discussion started by: doze
3 Replies

10. Shell Programming and Scripting

Need help in using power function in Bash

Hi, I would like to use a power function in Bash in an awk '{ } . e.g pow(2,3)=8 Any suggestion? I try to find online resources but most of them stated by using BC. Please advise. Thanks. (3 Replies)
Discussion started by: ahjiefreak
3 Replies
Login or Register to Ask a Question