![我如何找出为什么每次从原始 Ubuntu 脚本中都会收到相同的错误消息?](https://linux22.com/image/872274/%E6%88%91%E5%A6%82%E4%BD%95%E6%89%BE%E5%87%BA%E4%B8%BA%E4%BB%80%E4%B9%88%E6%AF%8F%E6%AC%A1%E4%BB%8E%E5%8E%9F%E5%A7%8B%20Ubuntu%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E9%83%BD%E4%BC%9A%E6%94%B6%E5%88%B0%E7%9B%B8%E5%90%8C%E7%9A%84%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF%EF%BC%9F.png)
Swap2Ram.sh总是会出现错误消息,即使我有足够的内存。有什么想法吗?
#!/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
我在 Linux 3.13.0-52-generic #86-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux 上。Ubuntu Gnome。
更新
$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
答案1
我认为问题在于脚本寻找Mem
和Swap
,而您的本地化产生Speicher
和Auslagerungsdatei
。只需在脚本中的 sLC_ALL=C
之前添加一个:free
export LC_ALL=C
mem=$(free | awk '/Mem:/ {print $4}')
swap=$(free | awk '/Swap:/ {print $3}')
或者:
mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}')
swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}')