Вы должны контролировать статус завершения процесса pgrep, который будет находиться в $? Переменная. Или проверьте, является ли переменная $status, в которой вы сохраняете вывод pgrep, f.e. строка ненулевой -длины. Скрипт в вопросе проверяет, равна ли строка в статусе переменной «1»
так
#!/bin/bash
pgrep compton >/dev/null
if [[ $? -eq 0 ]]
then
killall compton
else
exec compton -b
fi
или
#!/bin/bash
status=$(pgrep compton 2>&1)
if [[ -n "$status" ]]
then
killall compton
else
exec compton -b
fi
Эта команда выполняет почти ту же работу:
journalctl --boot --no-pager
Это можно запустить как обычный пользователь (к моему удивлению ). Я не удосужился разобраться с цветами, но по умолчанию только критические, кажется, в красном цвете, который на самом деле немного лучше для меня.