Вывод эха $$ [дубликат]

3

Результат команды echo $$ отображает некоторое число в стандартном выпуске, как показано ниже.

$ echo $$
14594

Что это за номер? Кроме того,

$ x=a
$ echo $x
a

В приведенном выше примере echo $x анализирует переменную x и отображает значение x для стандартного вывода. Аналогично в этой команде echo $$ , это то, что второй символ доллара представляет любую переменную?

    
задан Avinash Raj 02.04.2014 в 16:32
источник

2 ответа

3

$$ - это идентификатор PID ( идентификатор процесса ) текущей оболочки (не подоболочки). Внутри скрипта, внутри подоболочки, $$ возвращает PID скрипта, а не подоболочку. См. Внутренние переменные .

Вы также можете найти PID, возвращенный echo $$ в терминале, на выходе следующей команды:

ps ax | grep bash
    
ответ дан Radu Rădeanu 02.04.2014 в 16:39
2

$$ является одной из внутренних переменных bash. В отличие от $x , в вашем примере он не «содержит» значение, значение запрашивается при каждом обращении к переменной.

В сценарии bash он возвращает идентификатор процесса самого скрипта. В скрипте вы можете вызвать kill $$ , чтобы отправить SIGTERM в ваш скрипт.

В оболочке bash он возвращает идентификатор процесса текущего запущенного процесса bash.

В сценарии bash внутри подголовника он возвращает идентификатор процесса скрипта, а не подоболочку.

    
ответ дан chaos 02.04.2014 в 16:59