Qual é o significado de $$ 1 no bash?

27

Eu estou realmente brincando com argumentos e aconteceu. Eu apenas pensei em ver o que aconteceria se eu digitasse $ e eu fiz isso e consegui algo abaixo.

raja@raja-BONEFISH:~$ $
19301: command not found

O que é isso 19301 significa, está dizendo alguma coisa?

Bottom-Line: o que significa para $ no bash.

    
por Ten-Coin 20.05.2014 / 19:47

4 respostas

27

$$ é o PID (id do processo) do processo atual.

$ é o PID acima seguido pela string literal 1 .

Portanto, está lhe dizendo que o seu bash é o processo com o PID 1930.

Mas ... truque gratuito:

show() { eval echo $; }
show PATH
/home/romano/bin:/usr/local/bin:/bin:/usr/bin

(bastante complicado, não é?)

Mais informações em TLDP .

    
por Rmano 20.05.2014 / 19:50
13
  • $$ - pid do shell atual (não subshell) - consulte Quais são as variáveis especiais do shell de cifrão?

  • $ - pid do shell atual (não subshell) seguido por 1 .

  • $ - pid do shell atual (não subshell) seguido por 2 .

  • $$a - pid do shell atual (não subshell) seguido por a character.

  • E assim por diante ...

Veja a saída de echo $ .

E você recebe o erro command not found porque está tentando executar uma string composta de dígitos que obviamente não é um comando.

    
por Radu Rădeanu 20.05.2014 / 19:52
10

Você concatenou $$ e 1 para obter o PID do shell atual e 1 , ou seja, $$ representa o PID do shell em execução no momento e 1 é apenas um caractere, você poderia fazer $$a , $$@ para obter o PID concatenado com o seguinte caractere.

    
por jobin 20.05.2014 / 19:52
6

$$, ele indicará 1930 , que é pid do shell atual.

Quando você digita $ , isso significa que pid é seguido por um, então a saída será 19301 .

Experimente $ a saída será 19302

    
por nux 20.05.2014 / 19:53

Tags