tl;dr Используйте for id in $str
вместо for i in [ $str ];
и if who -u | grep -q "$id"
вместо if [ who -u | grep -q $i ];
.
[ … ]
представляет собойусловное выражение , которое отличается от команды. [ … ]
ничего не печатает , поэтому циклу for
не с чем работать, если вы обернете в него $str
. if COMMAND
— это канонический способ запуска чего-либо в случае успешного выполнения команды.