Como descubro por que recebo a mesma mensagem de erro de um script original do Ubuntu?

0

Swap2Ram.sh sempre produz sua mensagem de erro, mesmo quando tenho memória RAM suficiente. Alguma idéia?

#!/bin/sh

mem=$(free  | awk '/Mem:/ {print $4}')
swap=$(free | awk '/Swap:/ {print $3}')

if [ $mem -lt $swap ]; then
    echo "ERROR: not enough RAM to write swap back, nothing done" >&2
    exit 1
fi

swapoff -a && 
swapon -a

Estou no Linux 3.13.0-52-genérico # 86-Ubuntu SMP x86_64 x86_64 x86_64 GNU / Linux. Ubuntu Gnome.

Atualizar $ LC_ALL=C free

             total       used       free     shared    buffers     cached
Mem:       3841288    3161152     680136     149232      42076     424216
-/+ buffers/cache:    2694860    1146428
Swap:      3983356      35300    3948056
    
por brubaker 19.05.2015 / 13:55

1 resposta

1

Acho que o problema é que o script procura Mem e Swap , enquanto sua localização produz Speicher e Auslagerungsdatei . Basta adicionar um LC_ALL=C antes do free s no script:

export LC_ALL=C
mem=$(free  | awk '/Mem:/ {print $4}')
swap=$(free | awk '/Swap:/ {print $3}')

Ou:

mem=$(LC_ALL=C free  | awk '/Mem:/ {print $4}')
swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}')
    
por muru 19.05.2015 / 14:28