Quelle est la signification de $$ 1 dans bash?

27

Je joue en fait avec des arguments et c'est arrivé. J'ai juste pensé à voir ce qui se passerait si je tapais $ et que je l'avais fait et que j'avais quelque chose en dessous.

[email protected]:~$ $
19301: command not found

Qu'est-ce que 19301 signifie, est-ce que ça dit quelque chose?

Bottom-Line: qu'est-ce que cela signifie pour $ en bash.

    
posée Ten-Coin 20.05.2014 - 19:47
la source

4 réponses

27

$$ est le PID (identifiant de processus) du processus en cours.

$ est le PID ci-dessus suivi de la chaîne littérale 1 .

Donc, il vous dit que votre bash est le processus avec PID 1930.

Mais ... truc gratuit:

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

(assez compliqué, n'est-ce pas?)

Plus d’informations dans TLDP .

    
réponse donnée Rmano 20.05.2014 - 19:50
la source
13

Voir la sortie de echo $ .

Et vous obtenez l'erreur command not found parce que vous essayez d'exécuter une chaîne composée de chiffres, ce qui n'est évidemment pas une commande.

    
réponse donnée Radu Rădeanu 20.05.2014 - 19:52
la source
10

Vous avez concaténé $$ et 1 ensemble pour obtenir le PID du shell actuel et 1 , c.-à-d. $$ représente le PID du shell en cours d'exécution et 1 est juste un caractère, vous pourrait faire $$a , [email protected] pour que le PID soit concaténé avec le caractère suivant.

    
réponse donnée jobin 20.05.2014 - 19:52
la source
6

$$ il indiquera 1930 qui est pid du shell actuel.

Lorsque vous tapez $ , cela signifie que pid est suivi de 1 pour que la sortie soit 19301 .

Essayez $ la sortie sera 19302

    
réponse donnée nux 20.05.2014 - 19:53
la source

Lire d'autres questions sur les étiquettes