Pid=$!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Pid=$!
# 1  
Old 08-15-2013
Pid=$!

Hello,

I would like to know what this command means?

PID=$!

what does "!" stand for?
# 2  
Old 08-15-2013
That's not in my version of bash or korn shell. You know you should just do echo $!
# 3  
Old 08-15-2013
Code:
$!  Process number of last background command.

More information here, or just lookup Built-in Bash Shell Variables.
This User Gave Thanks to in2nix4life For This Post:
# 4  
Old 08-15-2013
it gives me null value..Smilie, btw this is on an AIX machine.

---------- Post updated at 03:10 PM ---------- Previous update was at 03:09 PM ----------

Thanks Smilie
# 5  
Old 08-15-2013
Quote:
Originally Posted by blackrageous
That's not in my version of bash or korn shell. You know you should just do echo $!
You must've overlooked it. The ! built-in variable has been around for a long time.

Regards,
Alister

---------- Post updated at 05:42 PM ---------- Previous update was at 05:40 PM ----------

Quote:
Originally Posted by googlietdr
it gives me null value
It's null until you run something in the background with & or bg.

Regards,
Alister
# 6  
Old 08-20-2013
Welcome googlietdr,

The value assigned to $! is the process id of the last command started in the background from the current shell.

It can be useful if you want to do something like this:-
Code:
(sleep 1
while true
do
   echo ".\c"
   sleep 1
done) &
SLEEP_PID=$!

echo "Copying file to local disk...\c"
cp enournmous_NFS_file new_local_file
RC=$?
kill $SLEEP_PID

if [ $RC -ne 0 ]
then
   errors
fi
:
:
etc.

Whilst the copy is running, the user will get a row of dots growing by one each second. It makes them think something is happening when they see a display moving. It can be a useful filler to stop them cancelling mid-way. I've fixed a few 'intermittent' problems with just such a placebo.

Of course, you could have a more processing efficient action to take and it allows a little bit of multi-threading of your script, or you can have a script that starts various sub-processes and you could collect the process id from each, then periodically check that they are still running.



I hope that this explains a little. Feel free to ask more.

Robin
Liverpool/Blackburn
UK
This User Gave Thanks to rbatte1 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

PID value

name the process wit PID value 0? swapper or scheduler or both.... (3 Replies)
Discussion started by: karthi_g
3 Replies

2. UNIX for Dummies Questions & Answers

Another PID ?

I have searched to find an anwer to no avail, I hope you can help me. I have a.ksh that many people call and a.ksh calls b.ksh b.ksh is also invoked stand-alone by many people as well In b.ksh I want to do something different if it was not involked by a.ksh. How can I do this? (7 Replies)
Discussion started by: CAGIRL
7 Replies

3. UNIX for Dummies Questions & Answers

Get pid

Hello people, This question might seem to be a little naive but here it goes: I want to know the PID of a script that is running in the background. eg: There is a script called Data_Downloader.sh I am using the command: ps -ef | grep Data_Downloader.sh But I am getting the output as wrkarea... (9 Replies)
Discussion started by: Rajat
9 Replies

4. UNIX for Dummies Questions & Answers

Need to get pid of a process and have to store the pid in a variable

Hi, I need to get the pid of a process and have to store the pid in a variable and i want to use this value(pid) of the variable for some process. Please can anyone tell me how to get the pid of a process and store it in a variable. please help me on this. Thanks in advance, Amudha (7 Replies)
Discussion started by: samudha
7 Replies

5. Shell Programming and Scripting

KILL PID, intern should kill another PID.

Hi All, In my project i have two process runs in the back end. Once i start my project, and execute the command ps, i get below output: PID TTY TIME CMD 9086 pts/1 0:00 ksh 9241 pts/1 0:02 java 9240 pts/1 0:00 shell_script_bg java with 9241 PID is the main... (4 Replies)
Discussion started by: rkrgarlapati
4 Replies

6. UNIX for Dummies Questions & Answers

Session PID & socket connection pid

1. If I use an software application(which connects to the database in the server) in my local pc, how many PID should be registered? Would there be PID for the session and another PID for socket connection? 2. I noticed (through netstat) that when I logged in using the my software application,... (1 Reply)
Discussion started by: pcx26
1 Replies

7. UNIX for Dummies Questions & Answers

getting PID

Hi , I am trying to get the PID using the following command: $ /usr/ucb/ps -auwwwwx | grep java | grep Proceess | ptree PID or $ /usr/ucb/ps -auwwwwx | grep java | grep Proceess;ptree PID it is possible to get PID, such that I check whether any orphan process is running. solution... (0 Replies)
Discussion started by: Rakesh Bhat
0 Replies

8. Shell Programming and Scripting

how to get PID only

The below command returns full line.How can i get only PID from this line ie 15794 from the below example (FI NY) nbswpsa52.ny.ficc.gs.com~ ->ps -ef | grep keepalive | grep -v keepaliveStub | grep -v swapback | grep -v grep ficctprd 15794 1 0 13:12:58 ? 0:01 keepalive (3 Replies)
Discussion started by: kotasateesh
3 Replies

9. UNIX for Advanced & Expert Users

Pid=0

What OS does not use PID=0? is it FreeBSD? (0 Replies)
Discussion started by: nmajin
0 Replies

10. Programming

printing ppid,child pid,pid

question: for the below program i just printed the value for pid, child pid and parent pid why does it give me 6 values? i assume ppid is 28086 but can't figure out why there are 5 values printed instead of just two! can someone comment on that! #include<stdio.h> #define DIM 8 int... (3 Replies)
Discussion started by: a25khan
3 Replies
Login or Register to Ask a Question