В чем смысл $ 1 в bash?

Я на самом деле играю с аргументами, и это произошло. Я просто подумал, что посмотреть, что произойдет, если я наберу $$1, и я сделал это, и получил что-то внизу.

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

Что это значит? Он что-то говорит?

[d2 ] Bottom-Line: что имеет значение для $$1 в bash.

1
задан 21 May 2014 в 00:03

3 ответа

$$ - pid текущей оболочки (не подоболочки) - см. Что представляют собой специальные переменные оболочки доллара? $$1 - pid текущей оболочки (не подоболочки), за которой следует 1. $$2 - pid текущей оболочки (не подоболочки), за которой следует 2. $$a - pid текущей оболочки (не подоболочки), за которой следует символ a. И так далее ...

См. Вывод echo $$1.

И вы получите ошибку command not found, потому что вы пытаетесь выполнить строку, состоящую из цифр, которые, очевидно, являются не команда.

13
ответ дан 24 May 2018 в 07:33

Вы объединили $$ и 1 вместе, чтобы получить PID текущей оболочки и 1, т. е. $$ означает PID текущей рабочей оболочки, а 1 - только символ, вы мог бы сделать $$a, $$@, чтобы связать PID со следующим символом.

10
ответ дан 24 May 2018 в 07:33

$$ он будет указывать 1930, который является pid текущей оболочки.

Когда вы вводите $$1, что означает pid, за которым следует один, поэтому вы должны быть 19301. [!d2 ]

Попробуйте $$2, выход будет 19302

6
ответ дан 24 May 2018 в 07:33

Другие вопросы по тегам:

Похожие вопросы: