Некоторые другие ответы работают, но нет необходимости записывать выходные данные grep (используя $ () или backtics) для сравнения строк, потому что состояние выхода grep будет указывать на успех или неудачу. Таким образом, вы можете уменьшить это до:
if who | grep -q ' :0 '; then
echo hi
fi
Или даже проще:
who | grep -q ' :0 ' && echo hi
Примечания:
«if» работает с командой или конвейером команд.
Левая квадратная скобка на самом деле является командой, другое название для «test».
Опция q подавляет вывод grep (в большинстве версий).
Вместо того, чтобы вызывать who, grep и test, вы можете просто вызывать who и grep.
Как уже отмечалось в другом ответе, вам может потребоваться grep для чего-то, кроме ': 0', в зависимости от вашей системы.