Необходимо удалить пробельные символы из $IFS
параметр для read
прекратить пропускать ведущие и запаздывающие (с -n1
, пробельный символ, если кто-либо и вел бы и запоздал бы, так пропущенный):
while IFS= read -rn1 a; do printf %s "$a"; done
Но даже затем удар read
пропустит символы новой строки, с которыми можно работать вокруг:
while IFS= read -rn1 a; do printf %s "${a:-$'\n'}"; done
Хотя Вы могли использовать IFS= read -d '' -rn1
вместо этого или еще лучше IFS= read -N1
(добавленный в 4,1, скопированный с ksh93
(включенный o
)), который является командой для чтения одного символа.
Обратите внимание что удар read
не может справиться с символами NUL. И ksh93 имеет те же проблемы как удар.
С zsh:
while read -ku0 a; do print -rn -- "$a"; done
(zsh может справиться с символами NUL).
Обратите внимание что они read -k/n/N
считайте много символов, не байтов. Таким образом для многобайтовых символов, им, вероятно, придется считать несколько байтов, пока полный символ не читается. Если вход содержит недопустимые символы, можно закончить с переменной, которая содержит последовательность байтов, которая не формирует допустимые символы и которую оболочка может закончить тем, что считала как несколько символов. Например, в локали UTF-8:
$ printf '\375\200\200\200\200ABC' | bash -c '
IFS= read -rN1 a; echo "${#a}"'
6
Это \375
представил бы 6-байтовый символ UTF-8. Однако 6-й (A
) выше недопустимо для символа UTF-8. Вы все еще заканчиваете с \375\200\200\200\200A
в $a
, который bash
количества как 6 символов, хотя первые 5 не являются действительно символами, всего 5 байтов не явление частью никакого символа.
Как упомянуто в комментариях, Единица не является Gnome. У меня лично не было большой удачи при попытке использовать менеджеры окон неединицы с ванильной Ubuntu; если бы я просто настраивал новую систему, то я установил бы Lubuntu и затем следовал бы за деталями Openbox здесь.
Относительно плюсов и минусов: я бы сказал использовать openbox без Гнома. Таким образом, вы не будете оседланы всеми вещами, связанными с Gnome, и вам будет проще быть разборчивым в том, что вы хотите/не хотите. Gnome менее 'модульный' ....
Что делает правый клик, это устанавливается в файле rc.xml
; для меня это вызывает root-menu
(это то, что вы имеете в виду под 'контекстным меню'?). Легко изменить, однако.
Что касается обоев вопрос, где вы пытаетесь установить его? Настройки Gnome здесь не работают. Самый простой способ - это использовать простую легковесную программу просмотра изображений типа feh, и предоставить соответствующую строку в вашем autostart.sh
, которая обычно находится в папке конфигурации openbox:
~/.config/openbox/autostart.sh # rc.xml should also be located here
Этот файл запускается в начале вашего сеанса работы с openbox, так что именно сюда вы загружаете обои, приложения в системном трее и т.д. и т.п. Это может быть так же просто, как:
#!/bin/bash
feh --bg-scale /path/to/wallpaper/you/like/wallpaper.jpg
# ... other things as needed ...