echo $$显示的数字是什么意思?

echo $$显示的数字是什么意思?

我无意中echo $$在命令行中输入了内容,但我得到的不是错误消息,而是一个 5 位数字。我在不同的终端上重复echo $$,每次都得到一个 5 位数字。$$和数字的含义是什么?

答案1

$$

当前进程的PID。


下面列出了不同用途的更多示例:


$_

许多函数的默认参数。

$。

保存上次读取的文件句柄的当前记录或行号。它是只读的,当文件句柄关闭时将重置为 0。

$/

保存输入记录分隔符。记录分隔符通常是换行符。但是,如果 $/ 设置为空字符串,则输入文件中的两个或多个换行符将被视为一个。

$,

print() 函数的输出分隔符。通常,该变量是空字符串。但是,如果您需要在单独的行上打印参数列表中的每个元素,则将 $, 设置为换行符可能会很有用。

$\

作为不可见的最后一个元素添加到传递给 print() 函数的参数中。通常是一个空字符串,但如果您想在打印的所有内容中添加换行符或其他后缀,您可以将后缀分配给 $。

$

打印数字的默认格式。通常,它设置为 %.20g,但您可以使用第 9 章“示例:打印重访”部分中介绍的格式说明符来指定您自己的默认格式。

$%

保存默认文件句柄的当前页码。如果使用 select() 更改默认文件句柄,$% 将更改以反映新选择的文件句柄的页码。

$=

保存默认文件句柄的当前页面长度。更改默认文件句柄将更改 $= 以反映新文件句柄的页面长度。

$-

保存默认文件句柄剩余要打印的行数。更改默认文件句柄将更改 $- 以反映新文件句柄要打印的剩余行数。

$~

保存默认文件句柄的默认行格式的名称。通常,它等于文件句柄的名称。

$^

保存默认文件句柄的默认标题格式的名称。通常,它等于文件句柄名称并附加 _TOP。

$|

如果非零,将在每次 write() 或 print() 函数后刷新输出缓冲区。一般情况下,设置为0。

$?

保存最后一次管道关闭、反引号字符串或 system() 函数的状态。

$&

保存上次成功的模式匹配所匹配的字符串。

$`

保存上一次成功的模式匹配所匹配的内容之前的字符串。

$'

保存上一次成功的模式匹配所匹配的内容后面的字符串。

$+

保存最后一个成功的模式匹配中最后一个括号匹配的字符串。例如,语句 /Fieldname: (.)|文件名: (.)/ && ($fName = $+);即使您不知道将使用两种可能的拼写中的哪一种,也会找到字段的名称。

$*

更改 ^ 和 $ 模式锚点的解释。将 $* 设置为 1 与使用 /m 选项以及正则表达式匹配和替换运算符相同。通常,$* 等于 0。

$0

保存包含正在执行的 Perl 脚本的文件的名称。

$

这组变量($1、$2、$3 等)保存正则表达式模式内存。模式中的每组括号将与括号包围的组件相匹配的字符串存储到 $ 变量之一中。

$[

保存基本数组索引。通常,它设置为 0。大多数 Perl 作者建议不要在没有充分理由的情况下更改它。

$]

包含一个字符串,用于标识您正在使用的 Perl 版本。当在数字上下文中使用时,它将等于版本号加上补丁级别除以 1000。

$”

这是将数组变量插入双引号字符串时在列表元素之间使用的分隔符。通常,其值为空格字符。

$;

保存多维数组模拟的下标分隔符。它的使用超出了本书的范围。

$!

当在数字上下文中使用时,保存 errno 的当前值。如果在字符串上下文中使用,将保存与 errno 关联的错误字符串。

$@

保存上次 eval() 函数调用的语法错误消息(如果有)。

$<

这个基于 UNIX 的变量保存当前进程的读取 uid。

$>

这个基于 UNIX 的变量保存当前进程的有效 uid。

$)

这个基于 UNIX 的变量保存当前进程的读取 gid。如果进程属于多个组,则 $) 将保存一个由空格分隔的组名称组成的字符串。

$:

保存一个字符串,该字符串由在 ^ 报告格式字符执行自动换行时可用于结束单词的字符组成。通常,字符串由空格、换行符和破折号字符组成。

$^D

保存调试标志的当前值。了解更多信息。

$^F

保存最大系统文件描述的值。通常,它设置为 2。该变量的使用超出了本书的范围。

$^我

保存用于创建备份文件的文件扩展名,以供 -i 命令行选项指定的就地编辑。例如,它可能等于“.bak”。

$^L

保存用于弹出页面以进行报告打印的字符串。

$^P

该变量是调试器清除的内部标志,因此它不会自行调试。

$^T

保存脚本开始运行的时间(以秒为单位)。

$^W

保存 -w 命令行选项的当前值。

$^X

保存用于运行当前脚本的 Perl 解释器的完整路径名。

来源:

答案2

它是当前 shell 的进程 ID。

来源:

扩展为所调用 shell 的十进制进程 ID。在子 shell 中(请参阅 Shell 执行环境),“$”应扩展为与当前 shell 相同的值。

相关内容