我无意中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 解释器的完整路径名。
来源: