请问 echo $$ 是什么意思?

发布于 2022-09-08 20:03:45 字数 44 浏览 12 评论 7

大家好,请问 echo $$ 是什么意思?
在网上搜索不了,还望指教,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

ゝ偶尔ゞ 2022-09-11 06:45:04

查看当前shell的PID,谢谢shell_HAT

计㈡愣 2022-09-11 06:44:29
  1. #查看上一条命令的返回值
  2. echo $?
  3. #查看当前shell的PID
  4. echo $$
  5. #查看后台运行的最后一个进程的PID
  6. echo $!
  7. #查看上一个命令的最后一个参数
  8. echo $_

复制代码

給妳壹絲溫柔 2022-09-11 06:39:56

从教程中拷贝过来,应该足够了, 连方法都出来了.

8.4.2 Process ID Variables and Temporary Files
The only thing new about this is $$ in the filename expression. This is a special shell variable whose
value is the process ID of the current shell.
To see how $$ works, type ps and note the process ID of your shell process (ksh). Then type print "$$";
the shell will respond with that same number. Now type ksh to start a subshell, and when you get a
prompt, repeat the process. You should see a different number, probably slightly higher than the last one.
A related built-in shell variable is ! (i.e., its value is $!), which contains the process ID of the most
recently invoked background job. To see how this works, invoke any job in the background and note the
process ID printed by the shell next to [1]. Then type print "$!"; you should see the same number.

还有个方法:
cat mytest.sh
#!/usr/bin/ksh
while true
do
echo "what's $$"
echo $$
sleep 60
done

然后从新开一个终端用ps -ef 去查看这个程序会有比较好的发现,
当然你也可以后台运行上面的程序,它是个死循环程序.

花落人断肠 2022-09-11 02:16:13

我的理解: 同意楼主,变量$$存储着指当前shell的PID的值,

比如:
# echo $$

# ksh          (进入一个subshell)
# echo $$

# <ctrl-d>     (退出 子shell)
# echo $$

看一下3次命令的输出结果

echo 命令是shell 内置命令,不用另外启动一个子shell 来执行,所以输出的是当前shell的PID

有时会看到echo $$ 命令被放到脚本里面执行。 因为一个脚本可以被运行多次产生不同的instances, 当你需要区分它们并且需要被外部的程序或脚本所识别的时候,可以在脚本中使用该命令

断桥再见 2022-09-10 23:10:08

开始我一直以为就是PPID,回完贴又回味了下,应该不太准确,等高人来科普吧

墨小墨 2022-09-09 08:39:42

是不是指当前所在shell的进程号呢?

星星的軌跡 2022-09-09 03:33:28

$$ 当前进程的进程号

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文