Яке значення $$ 1 у bash?


27

Я насправді граю з аргументами, і це сталося. Я просто думав, як побачити, що станеться, якщо я наберу, $$1і я це зробив і отримав щось нижче.

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

Що це за 19301 рік, це щось говорить?

Підсумок: що означає значення $$1bash.


1
ой !! таку легку річ. У мене ще є багато чого навчитися. Усі відповіді - супер. +1 для всіх.
rɑːdʒɑ

Відповіді:


27

$$ - PID (ідентифікатор процесу) поточного процесу.

$$1є вищевказаним PID, за яким слідує буквальний рядок 1.

Отже, це говорить вам, що ваш bashпроцес з PID 1930.

Але ... безкоштовна хитрість:

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

(доволі перекручений, чи не так?)

Більше інформації в TLDP .



1
На якусь мить я прочитав TLDP як "Занадто довго не мочився".
Луїс Альварадо

13
  • $$- pid поточної оболонки (не нижня оболонка) - див. Які спеціальні змінні оболонки знака долара?

  • $$1- pid поточної оболонки (не нижня оболонка) з наступним 1.

  • $$2- pid поточної оболонки (не нижня оболонка) з наступним 2.

  • $$a- pid поточної оболонки (не нижня оболонка) з наступним aсимволом.

  • І так далі...

Дивіться вихід echo $$1.

І ви отримуєте помилку, command not foundоскільки ви намагаєтесь виконати рядок, що складається з цифр, що, очевидно, не є командою.


10

Ви об'єднали $$і 1разом отримали PID поточної оболонки 1, тобто $$означає PID поточної оболонки, що працює в даний час, і 1є просто символом, який ви могли б зробити $$a, $$@щоб отримати PID, з'єднаний з наступним символом.


6

$$ в ньому буде 1930вказано, який є pid поточної оболонки.

Коли ви введете, $$1це означає, що під слід за ним, щоб виходили 19301.

Спробуйте $$2результат буде19302

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.