Sponsored Content
Top Forums UNIX for Advanced & Expert Users Passing variable as input & storing output in other variable Post 302954268 by Don Cragun on Sunday 6th of September 2015 11:38:24 AM
Old 09-06-2015
Quote:
Originally Posted by sam@sam
Hello Don,
THanks for your response,
I m using solaris 5.0 (bash script)
Yes, you are right..the loop is in a pipeline which is running in a subshell environment, at the end it is storing only the output of last iteration in variable logdata..........

But suppose If I store output in a file then I m getting accurate results.
Code:
ssh -n $username@dell.sys.com pwdx $userpid | awk '{print $2}' >> file

can you suggest your comments on this..
Not really...

You're using an operating system that is about 25 years old. And, on any Solaris 5.x system, you shouldn't be using /usr/bin/awk or /bin/awk (I've forgotten which it was in Solaris 5.0) unless you're using it to run code that you copied from a UNIX System V or earlier AT&T UNIX system.

You have shown us two code segments. And, you've told us you're concerned about how variables are being used. But, whether you set a variable named logdata or you save the output in a file named file, you haven't shown us what output is stored there, you haven't told us what output you want to store there, and you haven't shown us any code that uses the data once it is saved (so we don't know whether a variable, a file, or a pipeline reading it directly would make more sense).

The two code segments you showed us:
Code:
var12=$(ps -ef | grep apache | awk '{print $2,$4}')

and
Code:
while read userpid username
do 
logdata=$(ssh -n $username@dell.sys.com pwdx $userpid | awk '{print $2}')
done < $var12

could easily be combined without using any variables or files (except to store the final output) and getting rid of one invocation of awk with:
Code:
ps -ef | grep apache | while read junk userpid junk username junk
do 	ssh -n $username@dell.sys.com pwdx $userpid | nawk '{print $2}'
done > file

I never used the bash that came with Solaris 5.0, but the grep could also be removed from the pipeline using bash built-ins. I could easily do it with the ksh on Solaris 5.0, but I don't know what parameter expansions were available in bash at that time.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

storing output of awk in variable

HI I am trying to store the output of this awk command awk -F, {(if NR==2) print $1} test.sr in a variable when I am trying v= awk -F, {(if NR==2) print $1} test.sr $v = awk -F, {(if NR==2) print $1} test.sr but its not working out . Any suggestions Thanks Arif (3 Replies)
Discussion started by: mab_arif16
3 Replies

2. UNIX for Dummies Questions & Answers

Storing the output into a variable

Hi unix gurus, I am trying to store the result of a command into a variable. But it is not getting stored. x='hello' y=echo $x | wc -c but it is giving the output as 0(zero) Pls help me its very urgent (7 Replies)
Discussion started by: ravi raj kumar
7 Replies

3. Shell Programming and Scripting

Using 'defaults read' and storing the output in a variable

Hi all, I'm creating a script which uses 'defaults read' to retrieve details from an Info.plist like this; defaults read "/Path/Contents/Info" CFBundleShortVersionString This works fine in Terminal and returns the expected values. Is it possible to use this command in a script, and... (0 Replies)
Discussion started by: davewg
0 Replies

4. UNIX Desktop Questions & Answers

problem while storing the output of awk to variable

Hi, i have some files in one directory(say some sample dir) whose names will be like the following. some_file1.txt some_file2.txt. i need to get the last modified file size based on file name pattern like some_ here i am able to get the value of the last modified file size using the... (5 Replies)
Discussion started by: eswarreddya
5 Replies

5. UNIX for Dummies Questions & Answers

Storing lines of output into a script variable

I'm sure this is a simple thing but I can't figure it out. In a script that I'm writing, I'd like to be able to store each line of output from "ls -l" into a variable. Ultimately I'd like to end up with something like: for a in `ls -l` do something with $a doneBut that's reading each... (2 Replies)
Discussion started by: ewoods
2 Replies

6. Shell Programming and Scripting

storing output from echo & cut into variable

Hi All, Hope someone can advise here as I have been struggling to find a syntax that works here. I have tried a stack of combination I have seed in the forums but I think because I have needed to use "" and `` in the statments another method is found. I am reading in lines with the following... (1 Reply)
Discussion started by: nkwilliams
1 Replies

7. Shell Programming and Scripting

Pattern matching & storing result in variable

Hi! i'm trying to parse textfiles against a pattern and storing the result in a variable. The strings i want to get are embraced by and can occur several times in one line, so e.g. some text anything else endwhat i have so far: #!/bin/bash for f in $* do exec 3<&0 exec 0<$f ... (2 Replies)
Discussion started by: thoni
2 Replies

8. Programming

Storing input + some text into a variable (C Programming)

Hey guys got a slight problem here, I kindda new to socket programming in C so I need some guide on how to store something like this in a variable. printf ("%s Name : %s\n", id,getNAME(name)); name is declared as name. The getName is a function. So what I'm... (7 Replies)
Discussion started by: aLHaNz
7 Replies

9. Shell Programming and Scripting

Storing output into a variable

My script below seems to be choking because I need the the output of the find command to be stored as a variable that can then be called by used lower in the script. #!/bin/bash cd "/resumes_to_be_completed" var1=find . -mmin -1 -type f \( -name "*.doc" -o -name "*.docx" \)... (1 Reply)
Discussion started by: binary-ninja
1 Replies

10. Shell Programming and Scripting

Storing command output in a variable and using cut/awk

Hi, My aim is to get the md5 hash of a file and store it in a variable. var1="md5sum file1" $var1 The above outputs fine but also contains the filename, so somthing like this 243ASsf25 file1 i just need to get the first part and put it into a variable. var1="md5sum file1"... (5 Replies)
Discussion started by: JustALol
5 Replies
All times are GMT -4. The time now is 11:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy