Qual è il significato di $$ 1 in bash?


27

In realtà sto giocando con argomenti ed è successo. Ho solo pensato di vedere cosa succederà se scrivo $$1e l'ho fatto e ho qualcosa sotto.

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

Cosa significa 19301, sta dicendo qualcosa?

Bottom-line: cosa significa $$1in bash.


1
Ahia!! quella cosa molto semplice. Ho ancora molte cose da imparare. Tutte le risposte sono super. +1 a tutti.
rʒɑdʒɑ

Risposte:


27

$$ è il PID (ID processo) del processo corrente.

$$1è il PID sopra seguito seguito dalla stringa letterale 1.

Quindi ti sta dicendo che il tuo bashè il processo con PID 1930.

Ma ... trucco gratuito:

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

(abbastanza contorto, non è vero?)

Ulteriori informazioni in TLDP .



1
Per un momento ho letto il TLDP come "Too Long Didn't Pee".
Luis Alvarado,

13

Vedi l'output di echo $$1.

E ottieni l'errore command not foundperché stai cercando di eseguire una stringa composta da cifre che ovviamente non è un comando.


10

Si sono concatenati $$e 1insieme per ottenere il PID della shell corrente e 1, ad esempio, $$sta per il PID della shell attualmente in esecuzione ed 1è solo un personaggio, si potrebbe fare $$a, $$@per ottenere il PID concatenato con il seguente carattere.


6

$$ indicherà 1930quale è il pid della shell corrente.

Quando si digita $$1ciò significa pid seguito da uno in modo da ottenere l'output 19301.

Prova $$2l'output sarà19302

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.