Прокси представляет веб-страницу после начального 1-го использования прокси, прося имя пользователя и пароль. Я думаю, что это могло вызывать проблему, есть ли какой-либо способ, которым конфетка может иметь дело с этим?
Вероятно, что это - проблема, и нет большого количества конфетки, может делать с этим. Возможно, что, если Вы открываете страницу в браузере, и заполняют форму... конфетка будет теперь работать (вкусный чистый истекать-кэш), но нет никакого хорошего пути к конфетке для контакта с ним непосредственно.
Проблема только bash
имеет PROMPT_COMMAND
. Попробуйте это вместо этого:
PS1='\[$(if (($?)); then tput setaf 1; else tput setaf 2; fi)\]'\
'[\u@\h \w]\['"$(tput sgr0)"'\]'
¹ Протест: Я не протестировал это на ksh
, но это избегает PROMPT_COMMAND
и работы в bash
.
² tput
использует Вашу систему terminfo
базы данных. Это обычно более портативно и удобно в сопровождении, чем escape-последовательности жесткого кодирования, обеспечил, terminfo установлен правильно.
Проблема только bash
имеет PROMPT_COMMAND
. Попробуйте это вместо этого:
PS1='\[$(if (($?)); then tput setaf 1; else tput setaf 2; fi)\]'\
'[\u@\h \w]\['"$(tput sgr0)"'\]'
¹ Протест: Я не протестировал это на ksh
, но это избегает PROMPT_COMMAND
и работы в bash
.
² tput
использует Вашу систему terminfo
базы данных. Это обычно более портативно и удобно в сопровождении, чем escape-последовательности жесткого кодирования, обеспечил, terminfo установлен правильно.
Каждая оболочка поступает по-своему расширения подсказки. ksh OpenBSD является pdksh. Посмотрите его быстрые настройки в руководстве, под PS1
параметр.
Путь ksh работы состоит в том, что это выполняет замену параметра, замену команды и арифметическую замену (весь $
расширения) на значении PS1
прежде, чем распечатать подсказку. Таким образом, Вы устанавливаете PS1
раз и навсегда, но значение повторно создано каждый раз. (Можно сделать это в ударе также, если Вы помещаете shopt -s promptvars
в Вашем .bashrc
.)
ksh OpenBSD поддерживает Escape обратной косой черты, подобные удару. С другими версиями ksh необходимо было бы перевести escape-последовательности подсказки удара в $
замены также.
PS1='$(if (($? == 0)); then print -n "\\033[32m"; else print -n "\\033[31m"; fi)'
PS1="$PS1"'[\u@\h \w]'$(print '\033')'[0m '
Простой перевод выше имеет несколько дефектов:
$?
. Существует способ избежать этого, но это - hackish в ksh88.Вот некоторый более сложный код, который использует арифметику, чтобы не порождать подоболочку и заботится о разграничивании непечатаемых последовательностей.
escape=$(print '\033')
ctrla=$(print '\001')
PS1=$(print '\001\015')
PS1=$PS1$ctrla$escape'[$(($? ? 31 : 32))m'$ctrla
PS1=$PS1'[\u@\h \w]'
PS1=$PS1$ctrla$escape'[0m'$ctrla' '
TERM
к чему-то, что поддерживаетsetaf
атрибут, например.TERM=xterm
. (Я думаю, что ошибка указываетtput
не знает этоsetaf
берет числовой аргумент, так как он не установлен для Вашего текущего терминала.) – Mikel 07.05.2012, 06:15