line=\ ; PS4='${#line}: + '
while read line <&$((${#line}?0:3))
do : "$line"
done <<msg 3</dev/null
one nice thing about allowing shell expansions to self test
is that the shell already has mechanisms in place for the
evaluation. its doing it all the time anyway. theres almost
nothing for you to do but to let it fall into place.
For example:
${line##*[ :: i doubt very seriously the shell will read any of this :: ]*}
msg
1: + read line
59: + : 'one nice thing about allowing shell expansions to self test'
59: + read line
58: + : 'is that the shell already has mechanisms in place for the'
58: + read line
59: + : 'evaluation. its doing it all the time anyway. theres almost'
59: + read line
52: + : 'nothing for you to do but to let it fall into place.'
52: + read line
12: + : 'For example:'
12: + read line
0: + : ''
0: + read line
В качестве альтернативы, для немедленного прерывания при чтении пустой строки...
while read line && ${line:+":"} break
do : stuff
done
... будет хорошо работать.
Обычно это не имеет значения. Различные среды рабочего стола должны иметь свою конфигурацию и не мешать друг другу. Однако есть некоторые угловые случаи:
Но в большинстве случаев все должно быть в порядке и в основном зависит от используемого вами дистрибутива / выполненных вами конфигураций. Например, у меня не было проблем с запуском нескольких различных окружений рабочего стола / оконного менеджера в archlinux или несколько лет назад, когда я пробовал ubuntu с установленными kde, gnome и множеством других.
Я предполагаю, что вам не повезло с mint и kde - я считаю, что mint сильно стилизует свои приложения, и возиться с различными средами рабочего стола может быть проблематично (я не использую mint, поэтому не могу сказать наверняка).
Что касается единства и корицы; они обе являются оболочками gnome 3 и поэтому оба полагаются на конфигурации gnome 3, поэтому могут взаимодействовать друг с другом. Я не могу реально прокомментировать, как они предназначены для взаимодействия друг с другом или какую изоляцию должны иметь разные оболочки gnome, поскольку я тоже не запускаю.
Дополнительные среды рабочего стола нарушают ситуацию, изменяя конфигурационные файлы, скрытые в папке /home/user. Ваша основная среда рабочего стола ожидает определенную конфигурацию, и иногда она не очень хорошо адаптируется к изменениям, сделанным другим DE. Эти изменения происходят (в конфигурационных файлах папки пользователя) при первом входе в дополнительную среду рабочего стола.
Если вы добавляете только дополнительные DE для игры с ними, вы можете рассмотреть возможность создания дополнительных учетных записей пользователей для каждого добавляемого DE. Затем войдите в дополнительные среды рабочего стола только с использованием соответствующих учетных записей пользователей, созданных для каждой из них соответственно.
Таким образом, при входе в систему (в дополнительный DE) он только обманится с учетной записью /home/testUser .hiddenConfigFiles и оставит в покое конфигурационные файлы основной учетной записи пользователя.