我是bash shell編程的初學者。你能告訴我關於bash shell中的'$$'符號嗎?
如果我嘗試以下
#> echo $$
它打印
#>18756
你能告訴我這是什麼符號是用於什麼時候?
我是bash shell編程的初學者。你能告訴我關於bash shell中的'$$'符號嗎?
如果我嘗試以下
#> echo $$
它打印
#>18756
你能告訴我這是什麼符號是用於什麼時候?
這是bash進程本身的進程ID。
您可以使用它在它的生命來跟蹤你的進程 - 使用ps -p
,看它是否仍在運行,發送使用kill
(暫停。例如,進程)的信號,與renice
改變它的優先級,依此類推。
進程標識通常寫入日誌文件,特別是一次運行多個腳本實例時,以幫助跟蹤性能或診斷問題。
這裏的the bash documentation概述了特殊參數。
BASHPID
,由ghostdog74提到,在版本4.0中添加。下面是孟德爾庫珀的Advanced Bash-Scripting Guide顯示$$
和$BASHPID
之間的區別的例子:
#!/bin/bash4
echo "\$\$ outside of subshell = $$" # 9602
echo "\$BASH_SUBSHELL outside of subshell = $BASH_SUBSHELL" # 0
echo "\$BASHPID outside of subshell = $BASHPID" # 9602
echo
(echo "\$\$ inside of subshell = $$" # 9602
echo "\$BASH_SUBSHELL inside of subshell = $BASH_SUBSHELL" # 1
echo "\$BASHPID inside of subshell = $BASHPID") # 9603
# Note that $$ returns PID of parent process.
或者您可以直接鏈接到官方Bash文檔:http://www.gnu.org/software/bash/manual/bashref.html#Special-Parameters http://www.gnu.org/software/bash/manual /bashref.html#Shell-Variables – ephemient 2010-01-10 22:16:09
好主意 - 完成,謝謝。 – 2010-01-10 23:08:43
如果你有bash中,一個比較接近相當於是BASHPID變量。看到男人猛擊
BASHPID
Expands to the process id of the current bash process. This differs from $$ under certain circumstances, such as subshells
that do not require bash to be re-initialized.
什麼已經成爲你的shell閱讀精美手冊的良好傳統? – Jens 2012-05-12 17:02:57