Я на самом деле играю с аргументами, и это случилось. Я просто подумал, хотел бы посмотреть, что произойдет, если я наберу, $$1
и я сделал это и получил что-то ниже
raja@raja-BONEFISH:~$ $$1
19301: command not found
Что значит 19301, это что-то говорит?
Итог: что значит $$1
в bash.
Ответы:
$$
это PID (идентификатор процесса) текущего процесса.$$1
вышеуказанный PID, за которым следует буквальная строка1
.Так что это говорит вам, что ваш
bash
процесс с PID 1930.Но ... бесплатный трюк:
(довольно запутанный, не так ли?)
Больше информации в TLDP .
источник
$$
- pid текущей оболочки (не subshell) - см. Каковы специальные переменные оболочки знака доллара?$$1
- pid текущей оболочки (не subshell), за которой следует1
.$$2
- pid текущей оболочки (не subshell), за которой следует2
.$$a
- pid текущей оболочки (не subshell), за которой следуетa
символ.И так далее...
Смотрите вывод
echo $$1
.И вы получаете ошибку,
command not found
потому что вы пытаетесь выполнить строку, состоящую из цифр, которая, очевидно, не является командой.источник
Вы сцеплены
$$
и1
вместе , чтобы получить PID текущей оболочки и1
, т.е.$$
выступает за PID в настоящее время работает оболочку и1
только характер, вы могли бы сделать$$a
,$$@
чтобы получить PID сцепляется со следующим характером.источник
$$ будет утверждать ,
1930
что PID текущей оболочки.Когда вы печатаете,
$$1
это означает, что pid сопровождается одним, так что вы получите результат19301
.Попробуй
$$2
вывод будет19302
источник