从 ps 获取内存并通过 bash 与我的限制进行比较

get memory from ps and compare via bash with my limit

我有在openwrt中使用的代码。我需要检查使用 application

的内存
#!/bin/bash
VAR=$(ps | grep sca | grep start | awk '{print }')
VAG=$(cat /proc/pid/status | grep -e ^VmSize | awk '{print }')
if [ $VAG>28000 ]
then
echo test
fi

无论我使用 VAR 还是 VEG(例如 VAR/VAG 等于 15000),我都可以使用此代码。我总是 "test"

您的 if 陈述不正确。 test 命令(又名 [)必须为操作数和运算符接收单独的参数。此外,> 用于字符串比较;您需要改用 -gt

if [ "$VAG" -gt 28000 ]

由于您使用的是bash,您可以使用更具可读性的算术命令来代替[

if (( VAG > 28000 ))