Либо экранируйте его, либо поместите его в класс символов, что-то в этом роде:
grep '\['
grep '[[]'
grep -e "${user//\[/\\\[}"
Синтаксис ${var//c/d}
=> в переменной оболочки $var
заменяем все символы c
на d
. Теперь в вашем случае c
— это [
, но так получилось, что [
является особенным в этом синтаксисе (оно делает подстановку), и, следовательно, нам нужно его избежать поставив перед ним обратную косую черту, т. е. \[
.
Теперь перейдем к запасной части. Нам нужен \[
. Но опять же, и \
, и [
являются специальными в этом синтаксисе подстановки параметров ${var//...}
и, следовательно, оба должны быть, да вы правильно догадались, косая черта
приводя к выражению: \\\[
: "${var//\[/\\\[}"
HTH
Список команд id
id
, В этом случае пользователь root
принадлежит только одной группе, группе root
, поэтому эта группа указана как действующая группа, а также как часть дополнительных групп.
В моей системе OpenBSD:
$ doas id
uid=0(root) gid=0(wheel) groups=0(wheel), 2(kmem), 3(sys), 4(tty), 5(operator), 20(staff), 31(guest)
Результат id
по умолчанию предоставляет три значения ugG
(идентификатор и имя вместе).
Из справочной страницы Linux,
-u, --user: выводить только эффективный идентификатор пользователя
-g, --group: выводить только эффективный идентификатор группы
-G, --groups: Вывести все идентификаторы групп
Здесь groups = 0 (root)
означает, что пользователь root
принадлежит к группе с именем root
. Поскольку здесь нет вторичных групп для root
, это выглядит как избыточная информация.
Для пользователя, который принадлежит к нескольким группам, вывод будет иметь вид
uid=492(username) gid=492(primary groupname) groups=492(primary group), 493(secondary group)