MC и subshell

Используем пакеты, расширяющие возможности оборудования
Yrzorg
Сообщения: 75
Зарегистрирован: 05 окт 2015, 12:23

Сообщение Yrzorg » 20 авг 2016, 22:20

перешёл на entware3.0 (стандарт), там сабшелл работает из коробки
но вот ash_history забивается каким-то мусором, который начинает потом мешать при промотке последних команд
 

Код: Выделить всё

mc
precmd() { if [ ! "${PWD##$HOME}" ]; then MC_PWD="~"; else [ "${PWD##$HOME/}" = "$PWD" ] && MC_PWD="$PWD" || MC_PWD="~/${PWD##$HOME/}"; fi; echo "$USER@$HOSTN
htop
mc
precmd() { if [ ! "${PWD##$HOME}" ]; then MC_PWD="~"; else [ "${PWD##$HOME/}" = "$PWD" ] && MC_PWD="$PWD" || MC_PWD="~/${PWD##$HOME/}"; fi; echo "$USER@$HOSTN
htop
mc
precmd() { if [ ! "${PWD##$HOME}" ]; then MC_PWD="~"; else [ "${PWD##$HOME/}" = "$PWD" ] && MC_PWD="$PWD" || MC_PWD="~/${PWD##$HOME/}"; fi; echo "$USER@$HOSTN
 cd "`printf "%b" '\0057opt\0057home'`"
 cd "`printf "%b" '\0057opt'`"
 cd "`printf "%b" '\0057opt\0057etc'`"
 cd "`printf "%b" '\0057opt'`"
 cd "`printf "%b" '\0057opt\0057home'`"
 cd "`printf "%b" '\0057opt\0057home\0057admin'`"
Свернуть

как-то можно от этого избавиться?
Keenetic Ultra II+Entware
padavan 3.4.3.9-099

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1455
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 21 авг 2016, 08:45

Yrzorg писал(а):Источник цитаты как-то можно от этого избавиться?

Переходите на bash + настраивайте bash history - https://sanctum.geek.nz/arabesque/better-bash-history/
Или же отключайте subsheel и используйте ash/sh.

kaztost
Сообщения: 110
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 25 дек 2017, 01:21

Примерный и, вроде, работающий патч для busybox: функция remember_in_history в src/busybox-1.27.2/libbb/linedit.c

Код: Выделить всё

/* i <= state->max_history-1 */
+++++if ( strstr(str,"precmd() { if [ !")==NULL)
+++++if ( strstr(str,"cd \"`printf '%b'")==NULL) {
	state->history[i++] = xstrdup(str);
	/* i <= state->max_history */
	state->cur_history = i;
	state->cnt_history = i;
# if ENABLE_FEATURE_EDITING_SAVEHISTORY && !ENABLE_FEATURE_EDITING_SAVE_ON_EXIT
	save_history(str);
# endif
+++++}

В эти ваши *.diff и *.patch не умею, извините. А вто эта precmd() и мне тоже надоела, а bash еще более глючный, и глюки его непредсказуемы. Например, когда печать длинной команды в bash переводит курсор не ниже, а в ту же строку в левый конец, забивая уже написанное. Почему иногда это происходит, не ясно.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 2 посетителя :: 0 зарегистрированных, 0 скрытых и 2 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя