嗨,我有一个 munin 插件可以做到这一点
load_fetch() {
set -- $(cat /proc/loadavg)
cat <<EOF
load1.value $1
load5.value $2
load15.value $3
EOF
}
我很好奇是否有人可以告诉我“set --” 是做什么的?在 Google 上搜索并获取结果并不容易。
答案1
http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html有一个解释。此命令(重新)设置参数变量(本例中为 $1、$2、$3、$4 和 $5)。cat /proc/loadavg
为您提供一行包含一些数字的数据,并将输出提供给set --
将这些数字映射到 $N 变量。
例如:
$ echo $1 $2
$ set -- HELLO WORLD
$ echo $1
HELLO
$ echo $2
WORLD
答案2
“Set --” 是 bash 子句,因此并非特定于 munin。查看 set 参数的 bash 帮助,您可以找到以下内容:
-- 如果此选项后没有参数,则位置参数未设置。否则,位置参数将设置为参数,即使其中一些参数以“-”开头。
在您的具体情况下,它的作用是将 cat/proc/loadavg 的内容映射/传递为参数 $1 $2 和 $3,以便之后它们可以分别将它们分配给 load1.value、load5.value 和 load15.value
欲了解更多信息请使用 man 或以下网址:http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html