Macos 无法执行脚本。sh:未知错误
我想使用DTrace查看“我的shell脚本进行了哪些系统调用” 我制作了一个非常简单的shell脚本,Macos 无法执行脚本。sh:未知错误,macos,bsd,dtrace,Macos,Bsd,Dtrace,我想使用DTrace查看“我的shell脚本进行了哪些系统调用” 我制作了一个非常简单的shell脚本,shell.sh,并授予它执行权限: #/bin/bash grep1多亏了@l'l'l链接的链接:我能够解决这个问题 你需要两个贝壳 在外壳A中(我们将要检查的外壳): ——将此shell的PID复制到剪贴板(本例为93827) echo$$| pbcopy 在shell B(将运行DTrace的shell)中,开始跟踪该PID: sudo dtrace-n'syscall:::条目 /后
shell.sh
,并授予它执行权限:
#/bin/bash
grep1多亏了@l'l'l链接的链接:我能够解决这个问题
你需要两个贝壳
在外壳A中(我们将要检查的外壳):
——将此shell的PID复制到剪贴板(本例为93827)
echo$$| pbcopy
在shell B(将运行DTrace的shell)中,开始跟踪该PID:
sudo dtrace-n'syscall:::条目
/后代($1)和&pid!=$1/
{
@[probefunc]=count();
}' 93827
我们使用来确保跟踪shell的子进程。我添加了&&pid!=$1
由于某种原因,的子代(x)
似乎包括x
现在回到shell A,运行一些您想检查的代码:
grep 1 child
变量(指示此线程是-p PID
中指定的进程的子线程)
了解这一点也很有用,因为它是一个内置变量,可以为您提供父PID。看看这个答案,它可能会解决您的问题:
dtrace: failed to execute ./trace-me.sh: unknown error