Я могу воспроизвести:
$ printf "%s : %s : %s\n" $TERM ${TERM//[^[:alnum:]]/_} ${TERM//[^[:alnum:]]/?}
xterm-256color : xterm_256color :
Это потому, что ни один файл не соответствует шаблону xterm?256color
Решения:
$ printf "%s : %s : %s\n" "$TERM" "${TERM//[^[:alnum:]]/_}" "${TERM//[^[:alnum:]]/?}"
xterm-256color : xterm_256color : xterm?256color
Отключить расширение имени файла
$ (set -f; printf "%s : %s : %s\n" $TERM ${TERM//[^[:alnum:]]/_} ${TERM//[^[:alnum:]]/?})
xterm-256color : xterm_256color : xterm?256color
Отключить опцию оболочки nullglob
$ (shopt -u nullglob; printf "%s : %s : %s\n" $TERM ${TERM//[^[:alnum:]]/_} ${TERM//[^[:alnum:]]/?})
xterm-256color : xterm_256color : xterm?256color
Вероятно, это
Когда вы добавляете пользователя в новую группу, он просто записывает некоторые данные в конфигурационный файл на диск. Существующие процессы не изменяются.
Вы можете выйти из системы и снова войти в нее или использовать newgrp
для создания нового процесса оболочки с добавленной новой группой (это выполняет проверку разрешений путем чтения данных в файле, а затем запускает новую оболочку в новый процесс с новой группой, добавленной к группам ).