set - $ (cat / proc / loadavg)

1

Oi eu tenho um plugin munin que faz isso

load_fetch()  {
set -- $(cat /proc/loadavg)
cat <<EOF                                                                                                                                                                           
load1.value $1                                                                                                                                                                      
load5.value $2                                                                                                                                                                      
load15.value $3                                                                                                                                                                     
EOF                                                                                                                                                                                 
}

Eu estava ferindo se alguém poderia me dizer o que o "set -" está fazendo? não é uma coisa do leste para procurar e obter resultados.

    
por Alistair Prestidge 30.04.2013 / 12:20

2 respostas

2
O link tem uma explicação. Este comando (re) define as variáveis de argumento ($ 1, $ 2, $ 3, $ 4 e $ 5 neste caso). cat /proc/loadavg fornece uma linha com alguns números, alimentando a saída para set -- mapeia esses números para as variáveis $ N.

Veja por exemplo:

$ echo $1 $2

$ set -- HELLO WORLD
$ echo $1
HELLO
$ echo $2
WORLD
    
por 30.04.2013 / 12:30
2

"Set -" é uma cláusula bash e, portanto, não é específica para munin. Chegando à ajuda do bash para o parâmetro set você pode encontrar isto:

- Se nenhum argumento seguir essa opção, os parâmetros posicionais não serão definidos.     Caso contrário, os parâmetros posicionais são definidos para os argumentos,     mesmo que alguns deles comecem com um '-'.

No seu caso específico, o que ele faz é mapear / passar o conteúdo de cat / proc / loadavg como parâmetros $ 1 $ 2 e $ 3 para que eles possam atribuí-los a load1.value, load5.value e load15.value respectivamente

Para mais informações, use man ou o seguinte URL: link

    
por 30.04.2013 / 12:33

Tags