У меня есть общий сценарий bash oneline
, в который я вставляю все, что хочу прокрутить в одну строку:
#!/bin/bash
cr=`tput cr;tput el`
if [ -z "$COLUMNS" ]
then COLUMNS=80
fi
while read line
do echo -n "$cr${line:0:$COLUMNS}"
done
echo
tput
должен получить коды для возврата каретки и очистить до конца строки , чтобы короткие строки не оставляли мусора из предыдущих длинных строк на экране.
Обратите внимание: если ваша команда выводится на stderr, вам необходимо перенаправить ее на stdout перед конвейером. например, mycommand 2> & 1 | oneline
.
Вы правильно поняли. Группы всегда наследуются от родительского процесса (init начинается без дополнительных групп ). Единственный способ, которым это когда-либо менялось, - это setgroups. Это делается с помощью su, sshd или любого другого привилегированного процесса, выполняющего вход для пользователя. К моменту запуска оболочки пользователя группы уже установлены.