Visit Our UNIX and Linux User Community


combine 2 lines (command & echo)


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers combine 2 lines (command & echo)
# 1  
Old 10-04-2001
Question combine 2 lines (command & echo)

does anyone know how to combine 2 lines? this is what im playing around with.

(filename: online, user name: prml0001, real name: primal)
Code:
#!/bin/sh
who | grep $1 > /dev/null

if [ $? = "0" ]
then     
   grep $1 /etc/passwd | cut -f 5, -d :
   echo is logged on
   exit 0
else 
   grep $1 /etc/passwd | cut -f 5, -d :
   echo is not logged on
   exit 0
fi

execute:
$ online prml0001

output:
primal
is logged on

is there anyway to get "primal" & "is logged on" on the same line?

thanks!
-primal

added code tags for readability --oombera

Last edited by oombera; 02-20-2004 at 10:32 AM..
# 2  
Old 10-04-2001
save the output of the "grep" command into
a variable and place that variable in the
echo statement.
# 3  
Old 10-05-2001
how would i go about doing that?

Code:
   grep $1 /etc/passwd | cut -f 5, -d : > $user
   echo $user is logged on

or

Code:
   grep $1 /etc/passwd | cut -f 5, -d : = $user

or something different?
# 4  
Old 10-05-2001
try this:

Code:
 user=`grep $1 /etc/passwd|cut -f 5 -d:`
echo $user

# 5  
Old 10-05-2001
this is what i got:
Code:
#!/bin/sh
who | grep $1 > /dev/null

if [ $? = "0" ]
then
   user=`grep $1 /etc/passwd|cut -f 5 -d:`
   echo $user is logged on
   exit 0
else
   grep $1 /etc/passwd | cut -f 5, -d :
   echo is not logged on
   exit 0
fi

when i run the shell script nothing happens, i just get the prompt again. any ideas?
thanks for all the help ppl!
-primal

added code tags for readability --oombera

Last edited by oombera; 02-20-2004 at 10:32 AM..
# 6  
Old 10-05-2001
Hmm, the above seems to work for me...

Here's how I personally would do it (I'm not trying to do it all for you, I just think that there's so many ways to do it - this may give you a few new ideas to tackle your own script):
Code:
#!/bin/sh
use_msg () {
echo "Usage:  `basename $0` [name]"
}

if [ "$#" -ne "1" ] ; then
        use_msg
        exit 2
fi
name_t=`grep ^${1} /etc/passwd | cut -d: -f5 | cut -d, -f1`
if [ "$name_t" = "" ] ; then
        name="$1"
else
        name="$name_t"
fi
who | grep $1 >/dev/null 2>&1
if [ "$?" = "0" ] ; then
        logg=""
else
        logg="not "
fi
echo "${name} is ${logg}logged in"

Did you catch what happened with the "logg" variable? It's important to have a space after "not", to seperate the words. Also, this script does not check to see if that username even exists... it will simply say that the user is not logged in, since there is no GECOS data...
One more thing: I added another cut statement, because my GECOS info is comma delimited - the way the script was before, I was seeing the entire field, not just that name.

Hope this gives you a few ideas...
# 7  
Old 10-05-2001
my code worked for you? hmm it wouldnt have anything to do with me being on an AIX system would it?

thanks for the code... just not clear on what all of it means lol
ill look over the code you gave me, but if anyone else has any ideas, i wouldnt mind seeing them.

thanks!
-primal
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #233
Difficulty: Easy
The goal of ARPANET, the precursor to the global Internet, was to exploit new computer technologies to meet the needs of military command and control against nuclear threats, achieve survivable control of US nuclear forces, and improve military tactical and management decision making.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to remove lines that do not start with digit and combine line or lines

I have been searching and trying to come up with an awk that will perform the following on a converted text file (original is a pdf). 1. Since the first two lines are (begin with) text they are removed 2. if $1 is a number then all text is merged (combined) into one line until the next... (3 Replies)
Discussion started by: cmccabe
3 Replies

2. Shell Programming and Scripting

awk to combine lines if fields match in lines

In the awk below, what I am attempting to do is check each line in the tab-delimeted input, which has ~20 lines in it, for a keyword SVTYPE=Fusion. If the keyword is found I am splitting $3 using the . (dot) and reading the portion before and after the dot in an array a. If it does have that... (12 Replies)
Discussion started by: cmccabe
12 Replies

3. Shell Programming and Scripting

How to combine 2 files and output the unique & difference?

Hi Guys, I have two input files and I want to combine them and get the unique values and differences and put them into one file. See below desired output file. Inputfile1: 1111111 2222222 3333333 7860068 7860069 7860071 7860072 Inputfile2: 4444444 (4 Replies)
Discussion started by: pinpe
4 Replies

4. Shell Programming and Scripting

How to combine lines?

Hi, I have a file like this: "sdfc@abc.com","arovls","some addr ", "more stuff" "ssss@email.com","arovls","some addr", "sss" "edx@email.com","arovls","some addr", "sssdfvv" "ssss@a55.com","arovls","some addr", "lsdsdgf" "ssss@0234.com","aro vls","123 Main", "lSdfv" I want to... (4 Replies)
Discussion started by: erniel
4 Replies

5. Shell Programming and Scripting

Perl: combine Backtick & system() I/O operation?

Hi - Within perl I want to execute a system command. I want to re-direct all the output from the command to a file (@result = `$cmd`;), but I ALSO want the results to be displayed on the screen (system("$cmd"); The reason is this - if the command completes, I want to process the output. If the... (6 Replies)
Discussion started by: jeffw_00
6 Replies

6. Shell Programming and Scripting

Append && echo "success" to all commands

I am learning to build from SVN and other tools, with a lot of copying and pasting from forums. I like to append && echo "success" to all commands so that I can see at a glance if things went all right. Is there a way that I can have the bash shell append this to all commands? Thanks! (5 Replies)
Discussion started by: dotancohen
5 Replies

7. Shell Programming and Scripting

combine two perl lines into a single perl command

Hi Everyone, i have a string 00:44:40 so: $tmp=~ s/://gi; $tmp=~s/({2})({2})({2})/$1*3600+$2*60+$3/e; the output is 2680. Any way to combine this two lines into a single line? Thanks (4 Replies)
Discussion started by: jimmy_y
4 Replies

8. Shell Programming and Scripting

combine 2 lines

Moderator, kindly delete this thread because I already found what I needed... thanks. (0 Replies)
Discussion started by: Deanne
0 Replies

9. What is on Your Mind?

[[ $(date +%Y) == 2007 ]] && echo "Happy New Year"

Same as the Title! :) (2 Replies)
Discussion started by: ripat
2 Replies

10. UNIX for Dummies Questions & Answers

Combine two lines

Hi I have a file with the records 1 A B C D 2 E F G H 3 I J K L 4 M N O P In the ouput I want 1 A B C D 2 # F G H 3 I J K L 4 M N O P How to achieve this? (10 Replies)
Discussion started by: superprg
10 Replies

Featured Tech Videos