Как на самом деле работает команда env

Проблема известна и уже исправлена.-верхняя часть :защита от аномального отображения графика «Mem»

Until this patch, top falsely assumed that there would always be some (small) amount of physical memory after subtracting 'used' and 'available' from the total. But as the issue referenced below attests, a sum of 'used' and 'available' might exceed that total memory amount.

Ошибка была исправлена ​​месяц назад, но пакет Arch Linux procps-ngбыл собран 10.07.2016. Так что простой апгрейд системы в данном случае не поможет.

У вас есть как минимум два способа решить эту проблему:

  1. Сборка последней версии procps-ngиз исходников.
  2. Использование htopили другого аналога для мониторинга системы.

-1
21.11.2019, 16:59
1 ответ

$COLOR расширяется оболочкой до того, как envвызовет /bin/echo.

Это не сработает, если envвы не разрешите вызывать сценарий оболочки, расширяющий переменную.

Эвен:

COLOR=RED echo $COLOR

не работает так, как вы ожидаете, поскольку переменные оболочки расширяются до настройки новой среды.

Вам нужно разделить это на две строки:

COLOR=RED
echo $COLOR

, чтобы заставить его работать так, как вы ожидаете.

Если вы позвоните:

env COLOR=RED sh -c 'echo $COLOR'

это работает, потому что одинарные кавычки предотвращают расширение переменной, а раскрытие переменной откладывается на время, когда новая оболочка запускается с новой средой.

4
28.01.2020, 05:07

Теги

Похожие вопросы