gpt4 book ai didi

macos - "Can’ t 使\"0.0\"成为类型号。 "number -1700 from "0.0"到数字

转载 作者:行者123 更新时间:2023-12-04 04:47:49 25 4
gpt4 key购买 nike

为什么我一直收到错误“无法将\"0.0\"转换为类型编号。”从“0.0”到数字-1700?如果我删除 作为号码 ,显示对话框一直显示。

tell application "System Events"
repeat
set PID to unix id of process "JPEGmini"
set getCpuPercent to "ps aux | grep " & PID & " | grep -v grep | awk '{print $3}'"
set cpuPercent to (do shell script getCpuPercent) as number

if (cpuPercent) < 5 then

display dialog cpuPercent

end if
end repeat
end tell

最佳答案

这里的问题是你的 ps命令返回太多信息。为了说明我的意思,在我写的时候,我的谷歌浏览器进程的 pid 为 916。使用问题中的方法,我可以做 ps aux | grep 916看到这个过程。但这还不够 - grep 将匹配 ps 中字符串“916”的任何实例输出,所以如果碰巧有一个进程的 pid 为 1916 或 9160,那么它也会匹配。还有 ps aux列出了许多其他统计信息,其中许多还可能包含字符串“916”。事实上,如果我运行 ps aux | grep -c 916目前有 58 行匹配!

所以我们需要做的就是告诉 ps我们只对特定的 pid 感兴趣:

$ ps -o%cpu -p 916 | grep '[[:digit:]]'
0.5
$

这将仅列出具有给定 $PID 的进程的 cpu%。管道至 grep '[[:digit:]]'需要仅返回数字百分比并从 ps 中去除“CPU”列标题输出。

将其包装到您的原始脚本中,您将拥有:
tell application "System Events"
repeat
set PID to unix id of process "JPEGmini"
set getCpuPercent to "ps -o%cpu -p " & PID & " | grep '[[:digit:]]'"
set cpuPercent to (do shell script getCpuPercent) as number

if (cpuPercent) < 5 then

display dialog cpuPercent

end if
end repeat
end tell

我没有安装 JPEGmini,但这对我在 OSX 10.8.5 powerbook 上尝试过的所有其他进程都很好。

关于macos - "Can’ t 使\"0.0\"成为类型号。 "number -1700 from "0.0"到数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17917571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com