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

Abd*_*red 5 shell

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

dev*_*ull 9

$$

当前进程的PID。


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


$_

许多函数的默认参数。

$.

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

$/

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

$,

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

$\

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

$

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

$%

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

$=

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

$-

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

$~

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

$^

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

$|

如果非零,将在每次 write() 或 print() 函数后刷新输出缓冲区。通常,它设置为 0。

$?

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

$&

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

$`

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

$'

保存最后一次成功模式匹配所匹配的字符串。

$+

保存最后一次成功模式匹配中最后一个括号匹配的字符串。例如,语句 /Fieldname: (. )|Fldname: (. )/ && ($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

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

$^L

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

$^P

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

$^T

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

$^W

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

$^X

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

来源:


jw0*_*013 5

它是当前 shell 的进程 ID。

来源

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