Sponsored Content
Operating Systems Solaris Host name in front of pkginfo output Post 302894254 by Don Cragun on Monday 24th of March 2014 01:46:49 PM
Old 03-24-2014
Sorry, I forgot that /bin/sh on Solaris systems is an old Bourne shell that doesn't recognize the $(command) form of command substitution. Please insert the following as the 1st line in the script I gave you:
Code:
#!/usr/xpg4/bin/sh

and remove all of the other changes you made.

Aternatively, change the line:
Code:
host=$(uname -n)

to:
Code:
host=`uname -n`

and remove all of the other changes you made.

I learned how to use UNIX system utilities and libraries by reading the manuals from cover to cover. (Unfortunately, most systems don't have paper manuals anymore, but you can still find the directories that contain the manual pages for your system and use the man utility to read what is available on your system. I would suggest starting with the commands:
Code:
man 1 intro
man man
man sh
  and
man awk

When you look at code in The UNIX and Linux Forums and don't understand what it is doing, look up the man page for that utility. (You may notice that utilities on some systems support options that the utilities on Solaris systems do not support and that some utilities on Solaris systems support options that are not supported on other systems. You may also notice that some utilities only appear on Solaris systems and some utilities that are available on other systems are not available on Solaris systems. This is why it is important to always tell us what operating system and shell you're using when you post questions here.)

The modified script with comments is:
Code:
#!/usr/xpg4/bin/sh
# Previous line specifies the shell that is to be used to interpret this script.
host=$(uname -n)        # Get system host name.

# Invoke pkginfo and feed the output into awk.  Set the awk variable "host" to
# the same value stored in the shell variable "host".
pkginfo -l | /usr/xpg4/bin/awk -v host="$host" '
/NAME:/ {       # For every line in the input file that contains "NAME:"...
        gsub(/(^ *NAME: *)|( *$)/, "")  # remove leading spaces, "NAME:" and any
                                        # spaces following it, and remove
                                        # trailing spaces from the current input
                                        # line.
        printf("%s,\"%s\",", host, $0)  # Print the host name and the quoted
                                        # NAME: field.  Note that printf() does
                                        # not add a <newline> unless explicitly
                                        # told to do so.
        next    # Skip remaining actions for this line and start processing the
                # next input line.
}
/VERSION:/ {    # Perform similar processing for lines containing "VERSION:"...
        gsub(/(^ *VERSION: *)|( *$)/, "")
        printf("\"%s\",", $0)
        next
}
/BASEDIR:/ {    # Perform similar processing for lines containing "BASEDIR:"...
        gsub(/(^ *BASEDIR: *)|( *$)/, "")
        print   # Note that print() (without arguments) prints the (modified)
                # contents of the current line and adds a trailing <newline>
                # character.
}'

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

format and pkginfo -l question

I have a Solaris 2.6 box flagging an "Error block: 308918" in the messages file when I execute a pkginfo -l. pkginfo with no flags returns no errors. I think I need to use format to mark this block and then restore the database used by pkginfo for backup. Any advice/input welcome. Thanks (4 Replies)
Discussion started by: 98_1LE
4 Replies

2. UNIX for Dummies Questions & Answers

Sending tar output to a remote host

Our group has recently inherited 15 servers that have not been maintained for over a year. My first action is to backup the units however there is not enough disk space on most of them to run tar. My supervisor said to look at piping the tar output to another machine, however I have been unable... (3 Replies)
Discussion started by: thumper
3 Replies

3. Solaris

difference between pkginfo and pkgchk command

can anyone explain me the difference between pkginfo and pkgchk command in solaris. Both are used to display the package details, then what is the difference between both. (5 Replies)
Discussion started by: rogerben
5 Replies

4. UNIX for Advanced & Expert Users

rpm and pkginfo question

Can the root hide some of the results of the above commands from a regular user? i.e. $>rpm and $>sudo rpm will give different results (1 Reply)
Discussion started by: noam128
1 Replies

5. Solaris

grep help with pkginfo

im looking for a way to eliminate the packages from SUN when i do a pkginfo. thought this would work, but no luck. pkginfo | grep what am i doing wrong? Thanks (2 Replies)
Discussion started by: jrich523
2 Replies

6. Shell Programming and Scripting

rsh to many hosts the ftp output to single host

Hi guys. i need some help, i need to create a script in tcsh that rsh into all my hosts that we have at our business, then cd to a directory (cd /apps/users) then grab a file from the users folder and ftp it back to my windows machine. can someone please help? Kind regards. Brian Behrens (2 Replies)
Discussion started by: brian112
2 Replies

7. Solaris

pkgadd, pkginfo, ssh not working

Got a feeling someone has been fiddling around or something has got corrupt but I'm getting the following errors now:- -bash-3.00# pkginfo ld.so.1: pkginfo: fatal: libssl.so.0.9.7: open failed: No such file or directory Killed -bash-3.00# and also ssh:- -bash-3.00# ssh ld.so.1: ssh:... (5 Replies)
Discussion started by: psychocandy
5 Replies

8. Solaris

Host name in front of ps output

hello All. I am working on something that should be really simply. It turns out that its not. I am trying to produce output to list the hostname along with all the current running programs. the script im using is: for PS in `ps -Ao "user,args" | cut -d' ' -f1,2` do echo "`uname -n`, $PS"... (5 Replies)
Discussion started by: busi386
5 Replies

9. UNIX for Dummies Questions & Answers

How to get/print host string only from tnsping output?

Hello All, I am using Linux OS. My idea is get the host name when we do tnsping in oracle. output of : tnsping DOELO01 TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 15-OCT-2015 20:20:05 Copyright (c) 1997, 2011, Oracle. All rights reserved. Used parameter files:... (2 Replies)
Discussion started by: Ariean
2 Replies

10. UNIX for Beginners Questions & Answers

Output top line for each unique host

Hi All, Please can you help with the output whole line for each host (column 3) and the top line of column 9 - the lastest only What is being outputted 243272484 3 nbmedln1p03 LDN_TEST_UX_JM 1488198368 0000000007 1 INC_1MTH 0 ********** 243272492 3 nbmedln1p03 LDN_TEST_UX_JM... (10 Replies)
Discussion started by: Junes
10 Replies
All times are GMT -4. The time now is 08:33 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy