Macos 无法执行脚本。sh:未知错误

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:::条目 /后

我想使用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:::条目
/后代($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