En realidad estoy jugando con argumentos y sucedió. Solo pensé en ver qué pasaría si escribo $$1
y lo hice y obtuve algo a continuación.
raja@raja-BONEFISH:~$ $$1
19301: command not found
¿Qué significa eso 19301? ¿Está diciendo algo?
En pocas palabras: lo que significa $$1
en bash.
Respuestas:
$$
es el PID (id. de proceso) del proceso actual.$$1
es el PID anterior seguido de la cadena literal1
.Entonces te dice que tu
bash
es el proceso con PID 1930.Pero ... truco gratis:
(bastante complicado, ¿no?)
Más información en TLDP .
fuente
$$
- pid del shell actual (no subshell) - vea ¿Cuáles son las variables especiales del shell de signo de dólar?$$1
- pid del shell actual (no subshell) seguido de1
.$$2
- pid del shell actual (no subshell) seguido de2
.$$a
- pid del shell actual (no subshell) seguido dea
carácter.Y así...
Ver la salida de
echo $$1
.Y obtiene el error
command not found
porque está tratando de ejecutar una cadena compuesta de dígitos que obviamente no es un comando.fuente
Se han concatenado
$$
y1
juntos para obtener el PID del shell actual y1
, es decir,$$
representa el PID del shell actualmente en ejecución y1
es solo un carácter, podría hacer$$a
,$$@
para concatenar el PID con el siguiente carácter.fuente
$$ indicará
1930
cuál es pid del shell actual.Cuando escribe
$$1
eso significa pid seguido de uno, por lo que la salida sería19301
.Prueba
$$2
la salida será19302
fuente