Sponsored Content
Top Forums Shell Programming and Scripting Output breaking when returning multiple values Post 302758605 by Azrael on Sunday 20th of January 2013 08:18:53 AM
Old 01-20-2013
Thank you Radoulov

Kdialog seems to be able to handle the output when given all the specific array elements:

Code:
kmx() {   mxs=( $( host -t MX "$1" | awk '{ sub(/\.$/, x, $NF); print $NF }' ) );   
ips=( $( for _mx in "${mxs[@]}"; do host "$_mx" | awk '/has address/ { print $NF }'; done ) );   
kdialog --title "KMX" --msgbox "# host -t MX $1 
${mxs[0]} ${ips[0]}
${mxs[1]} ${ips[1]}
${mxs[2]} ${ips[2]}
${mxs[3]} ${ips[3]}
${mxs[4]} ${ips[4]}
"  ; }; kmx google.com

Not sure, but I've found that kdialog is white-space specific. Perhaps it broke the output before because it was trying to write a whole array to one line. However, if that was the case it seems it would have not printed all the MX Records with this:

Code:
$ function kmx { mx=`host -t MX $1 | awk '{ print $7 }'`; 
ip=`host $mx | sed '/IPv6/d;/handled/d' | awk '{ print $4 }'`; 
kdialog --title "KMX" --msgbox "# host -t MX $1
$mx $ip";}; kmx google.com

Grant you that breaks the ips, but the $mx should have broken too if that was the case.

I know I could check the length of the array in this function, but I don't know if writing a loop to call each of these elements with kdialog would be possible or not. However, without the code being able to determine the number of MX Records and ip addresses itself would kind of defeat the purpose.

Any further suggestions appreciated.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Returning Values (shell Script)

I have an application on Informix 4GL, and I am invoking the shell script from the program, but I need to know if the shell script work fine or not, in order to continue the process. I know that we can use $? to get the final status but this is on unix command. How can I return a value from the... (3 Replies)
Discussion started by: jennifer01
3 Replies

2. UNIX for Dummies Questions & Answers

Breaking output for specific pattern

Respected Sirs, I have a text file which is unfortunately unformatted. I have something like 191728/02/06226278 191828/02/06226279 191928/02/06226280 192028/02/06226281 192128/02/06226282 Can some one suggest me the way so that I can store 1917 28/02/06 226278 in different... (2 Replies)
Discussion started by: shoeb_syed
2 Replies

3. Shell Programming and Scripting

awk/nawk returning decimal values?

Hi Running a specific nawk statement over a 17m lines files returns the following: /bin/nawk: not enough args in ..... input record number 1,25955e+06, file test.1 source line number 1 I'd like to report the line number (in bold above) in decimal not floating so that i can spot it out. ... (1 Reply)
Discussion started by: moutaye
1 Replies

4. Programming

returning multiple values from a function in C

hi how can I return multiple values from a C function. I tried the following: #include <stdio.h> void foo(int id, char *first_name, char *last_name) { /* this is just an example to illustrate my problem... real code makes use of the "id" parameter. */ first_name = (char... (8 Replies)
Discussion started by: Andrewkl
8 Replies

5. Shell Programming and Scripting

Breaking a column's value into multiple rows

Hello Friends, I am trying to implement the following using UNIX. I am getting a sequential file as input which would have two columns, "Name" and "Countries Visited". The "Countries Visisted" field will be multi-valued, each value separated by a space and also the number of values are not... (2 Replies)
Discussion started by: mehimadri
2 Replies

6. UNIX for Dummies Questions & Answers

For loop returning more values

Hi All, Thanks all of you for the help you provide to me. Well, I have one more problem, where I am trying to pull file system information in the loop and display the filesystem percentege. I am using following code to achive this, nut it's giving the weired output. My file system is ... (1 Reply)
Discussion started by: alok.behria
1 Replies

7. Shell Programming and Scripting

Returning and capturing multiple return values from a function

Hi I am pretty confused in returning and capturing multiple values i have defined a function which should return values "total, difference" i have used as #!/usr/bin/ksh calc() { total=$1+$2 echo "$total" diff=$2-$1 echo "$diff" } I have invoked this function as calc 5 8 Now i... (2 Replies)
Discussion started by: Priya Amaresh
2 Replies

8. Shell Programming and Scripting

Returning multiple values in Shell

Hi I have a code as the following #!/usr/bin/ksh set -x row() { a=$1 b=$2 c=$(($a + $b)) d=$(($a * $b)) echo $a $b } e=`row 2 3` set $e echo "The value of c is $c" echo "The value of d is $d" My requirement is I need to pass two arguments to a function and return two values... (5 Replies)
Discussion started by: Priya Amaresh
5 Replies

9. Shell Programming and Scripting

Extract multiple values from a tnsping output

Hi all, Can anyone help with the following request? I need to extract HOST value, SERVICE_NAME and msec value from a tnsping output and append to a file. The tnsping output is typically as follows: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS =... (4 Replies)
Discussion started by: jonnyd
4 Replies

10. UNIX for Dummies Questions & Answers

Read in Multiple log files and output selected variables and values to cvs file

I have several problems with my problems: I hope you can help me. 1) the If else statement I am getting an error message. My syntax must be incorrect because the entire statement is throwing an error. For example in filew.log if these items don't exist Memsize, SASFoundation and also if... (0 Replies)
Discussion started by: dellanicholson
0 Replies
IPS(4)							   BSD Kernel Interfaces Manual 						    IPS(4)

NAME
ips -- IBM/Adaptec ServeRAID controller driver SYNOPSIS
To compile this driver into the kernel, place the following lines in your kernel configuration file: device pci device scbus device ips Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5): ips_load="YES" DESCRIPTION
The ips driver claims to support the IBM (now Adaptec) ServeRAID series SCSI controller cards. These cards come with a built in configuration utility stored in the firmware known as the ISPR. This utility is accessed with the <Ctrl+I> key combination during the initial card POST. It is highly recommended that this utility be used to configure the card before attempting to diagnose the below error messages. In some cases, the ips driver can have difficulties attaching during the system initialization period. To avoid these difficulties, set the hw.ips.0.disable tunable to 1. It will prevent the driver from attaching. HARDWARE
Controllers supported by the ips driver include: o IBM ServeRAID 3H o ServeRAID 4L/4M/4H o ServeRAID Series 5 o ServeRAID 6i/6M o ServeRAID 7t/7k/7M DIAGNOSTICS
Several error codes may be shown when the card initializes the IBM ISPR utility and are independent of FreeBSD. ips%d: failed to get adapter configuration data from device ips%d: failed to get drive configuration data from device Unable to obtain adapter or drive configuration. ips%d iobuf error A buffer input/output error has occurred. [ENXIO] General adapter errors: Attaching bus failed This message is undocumented. WARNING: command timeout. Adapter is in toaster mode, resetting A command timeout has caused the adapter to be reset. AIEE! adapter reset failed, giving up and going home! Have a nice day An error occurred while attempting to reset the adapter. unable to get adapter configuration unable to get drive configuration There was an error when attempting to get configuration information. Adapter error during initialization. adapter initialization failed There was an error while attempting to initialize the adapter. adapter failed config check adapter clear failed There was an error while checking the adapter. device is disabled The adapter is disabled. resource allocation failed irq allocation failed irq setup failed The driver was unable to allocate resources for the device. Error messages due to DMA: can't alloc command dma tag can't alloc SG dma tag can't alloc dma tag for statue queue dmamap failed Failure to map or allocate DMA resources. Cache, buffer, and command errors: failed to initialize command buffers no mem for command slots! The ips driver will return [ENOMEM] in such cases. ERROR: unable to get a command! can't flush cache! ERROR: cache flush command failed! ERROR: unable to get a command! can't update nvram ERROR: nvram update command failed! ERROR: unable to get a command! can't sync cache! ERROR: cache sync command failed! ERROR: unable to get a command! can't sync cache! ERROR: etable command failed! COMPATIBILITY
Unlike many of the other SCSI devices in FreeBSD, the ips driver does not use the cam(4) SCSI subsystem. SEE ALSO
ch(4), da(4), sysctl(8) AUTHORS
The ips driver was written by David Jefferys and Scott Long <scottl@FreeBSD.org>. This manual page was written by Tom Rhodes <trhodes@FreeBSD.org>. BSD
November 4, 2006 BSD
All times are GMT -4. The time now is 05:59 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy