03-04-2008
A script like:
#! /bin/sh
echo hello | read word ; echo word = $word
will work on HP-UX but fail on Linux. HP's /bin/sh is a modified version of the real Korn shell. But Linux's /bin/sh is a linked version of bash. The real Korn shell is the only shell that executes the last command of a pipeline in the context of the current shell provided that the last command is a shell built-in. Other shells will fork a new process to handle that "read word". The subprocess will exit and back in the parent, the variable "word" never got a new value. Beware: Linux often has pd-ksh which will behave the same way.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I have a while read loop that reads files in a directory and process. The files have spaces in between, so I have the IFS=\n to to read the whole line as one file name.
The read works fine but I have a problem with another variable that I set in the beginning of the script. The variable... (1 Reply)
Discussion started by: pvar
1 Replies
2. UNIX for Dummies Questions & Answers
Hi all,
Ok os heres my situation. I have created a database style program that stores a persons info (name,address,phone number etc.) in a file ("database"). after i read in all the values above, i assign them to a line variable:
line="$name^$address^$phonenum" >> phonebuk
as you can see... (1 Reply)
Discussion started by: djt0506
1 Replies
3. UNIX for Dummies Questions & Answers
How can I set the value for IFS variable (2 Replies)
Discussion started by: mahabunta
2 Replies
4. UNIX for Dummies Questions & Answers
Hi!
I am working in korn shell. I want to reset the dimiliter for the set command to "|" but instead of a command prompt return I am getting something as below
After issuing the command I am getting this....as if the shell is expecting something else. Can anybody suggest what's the problem.
... (2 Replies)
Discussion started by: udiptya
2 Replies
5. Shell Programming and Scripting
Hi,
I have modified the IFS variable in the K shell program and with in the program i want to reset to the default one. How do i reset the same.
e.g
in the begining of the program IFS is default
in the middle i changed it to
IFS="|"
and again i want the default value for the IFS.
... (2 Replies)
Discussion started by: vijaykrc
2 Replies
6. Shell Programming and Scripting
hi i am a learner
can some explain "export IFS=$(echo "\n\t\a")"
i am not able to understand the functionality
please help
thanks
Satya (1 Reply)
Discussion started by: Satyak
1 Replies
7. Shell Programming and Scripting
Whenever i execute the below scriptlet with out proper file name it deletes /tmp directory .
I guess this is because value of variable a didnt get initialized and there for rm -rf /tmp/ get executed and entire /tmp directory get deleted.
How would i avoid any empty variables to be used in... (9 Replies)
Discussion started by: pinga123
9 Replies
8. Shell Programming and Scripting
Hi,
while ; do
echo "Please enter "
read enter
yyyy=${enter:0:4}
mm=${enter:5:2}
dd=${enter:8:2}
result=`validateDate $yyyy $mm $dd`
When does the loop keeping repeating till?? till 1 is equal to 1?
what does this mean "${enter:0:4}" .The 0 and 4 part??
... (3 Replies)
Discussion started by: sid22
3 Replies
9. Shell Programming and Scripting
Hi ,
i am in my initial learning phase of unix. i was going thru the function part.
below is the example which was there but i am not able to understand logic and the use of IFS(internal field separator)
lspath() {
OLDIFS="$IFS"
IFS=:
for DIR in $PATH ; do echo $DIR ; done
IFS="$OLDIFS"... (8 Replies)
Discussion started by: scriptor
8 Replies
10. Shell Programming and Scripting
Ok, so I'm playing around with delimters and reading files. and I came across this behaviour that I thought was a bit odd, regarding how the set command takes values... If I run this: IFS=$'-' #Assigns the - as the default delimiter for bash set I-love-my-gf-a-lot #uses set to put a bunch of... (1 Reply)
Discussion started by: Lost in Cyberia
1 Replies
newgrp(1) General Commands Manual newgrp(1)
NAME
newgrp - change effective group ID sg - execute command with different group ID
SYNOPSIS
newgrp [-l] [group]
sg group -c command
DESCRIPTION
The newgrp command changes the user's real and effetive group ID by replacing the current shell with a new shell. A new shell is launched
even if an error occours.
A password is requested if the group has a password and the user is not listed in the group file as being a member of that group. The pass-
word can be changed with the gpasswd(1) command.
If the new effective group ID is not in the supplementary group list, newgrp will add the new group ID to the supplementary list, too.
With no operands and options, newgrp changes the user's group IDs (real and effective) back to the group specified in password and group
file.
The sg command works like the newgrp command, except that it executes the given command with /bin/sh and upon exit the group ID of the cur-
rent shell is not changed.
OPTIONS
-l, --login
reinitialize the environment as if the user logged in.
--help Print a help list.
-u, --usage
Print a short usage message.
-v, --version
Print program version.
SEE ALSO
gpasswd(1), group(5), passwd(1), passwd(5), su(1)
AUTHOR
Thorsten Kukuk <kukuk@suse.de>
pwdutils April 2004 newgrp(1)