我怎样才能只从 sysctl,MacOS 的 return 中获取布尔值

How can I only get the boolean value from the return of sysctl, MacOS

我正在尝试获取命令的 return 布尔值:sysctl debug.lowpri_throttle_enabled,在 shell 脚本(运行 with zsh)中。

此命令用于了解macOS是否启用低阶任务(即时间机器)的速度限制。

这是我现在完成的脚本:

value=$(sysctl debug.lowpri_throttle_enabled)
echo $value

我得到的输出是:

>>>debug.lowpri_throttle_enabled: 0

但我只想要 0/1 作为输出,我怎样才能只得到布尔值而不是整个字符串?谢谢。

我找到了解决办法。参考:https://ss64.com/osx/sysctl.html

添加 -n 作为选项,它只会 return 值。

例如

>>>sysctl -n debug.lowpri_throttle_enabled
0
>>>sudo sysctl debug.lowpri_throttle_enabled=1
>>>sysctl -n debug.lowpri_throttle_enabled
1

根据描述,-n适用于:

Show only variable values, not their names. This option is useful for setting shell variables.

-b 用于:

Force the value of the variable(s) to be output in raw, binary format. No names are printed and no terminating newlines are output.

但我不知道为什么在这种情况下只有 -n 有效,而 -b 无效。