valor do script de shell $$

1

Quando utilizo estes comandos da shell:

[root@linux /tmp]# a=$$
[root@linux /tmp]# echo $a
3985

de onde vem o valor 3985? E por quê?

    
por klod 09.02.2011 / 14:14

4 respostas

10
man bash

explica isso.

Expands to the process ID of the shell.  In a () subshell, 
it expands to the  process ID of the current shell, not the subshell.
    
por 09.02.2011 / 14:18
3

$$ é o pid do processo atual

tente

host@controller:~$ echo $$
12481
host@controller:~$ ps -p 12481
  PID TTY          TIME CMD
12481 pts/2    00:00:01 bash
host@controller:~$

Como executamos echo $$ no bash, obtemos seu pid atual

saiba também

echo $? é o código de retorno do último comando executado.

$ # é o número de argumentos

$ * é a lista de argumentos passados para o processo atual

$ [1 ou 2 ou ... n] valor de cada argumento correspondente

    
por 05.08.2015 / 10:56
0

É por isso que algumas pessoas o usam para construir um nome de arquivo que é usado apenas temporariamente e depois destruído, como neste fragmento de script.

SCRATCHFILE=/tmp/emphemeral.$$ ;
# Now have the script write to and read from the temp file
rm $SCRATCHFILE ;

Como mencionado acima, o $$ no nome do arquivo será o PID do script principal.

    
por 29.03.2011 / 18:30
-1

Experimente "echo $$" para obter a resposta.

    
por 11.12.2012 / 20:10