Por que o bash está usando -ge para comparar em vez de ==?

0

Por isso, estou adicionando um aviso de pouco espaço no disco rígido ao meu servidor doméstico. Eu gosto da aparência do seguinte que vem de aqui :

ADMIN="[email protected]"
# set alert-level 90 % standard
ALERT=10
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }' | while read output;
do
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
  partition=$(echo $output | awk '{ print $2 }' )
  if [ $usep -ge $ALERT ]; then
    echo "space low on \"$partition ($usep%)\", on server $(hostname) at $(date)" |
 mail -s "Alert: Free space low, $usep % used on $partition" $ADMIN
  fi
done

Como eu acho prudente entender qualquer script que você executa antes de realmente executá-lo, eu estive olhando para as man pages para descobrir como cada uma das seções individuais do programa funciona e parece bastante simples. A única coisa que não entendo é o -ge flag na instrução condicional if . De acordo com a bash introdução à página , estes seriam avaliados como verdadeiros se o existe". Como essa lógica se aplica quando comparo duas variáveis? Em outras linguagens de programação, usaria a sintaxe == . Da mesma forma, por que estamos comparando os valores de 90 (conforme relatado por df) a 10 , que é a variável de ALERT , presumo que isso tenha algo a ver com a maneira como a condicional avalia? Não tenho motivos para acreditar que este código não funcionará. Gostaria apenas de saber por que antes de adicioná-lo a um script.

Obrigado.

    
por Scott 20.11.2016 / 02:49

0 respostas