В w3m
можно отключить цвета с помощью параметра -o color=false
или-M
(монохромного режима отображения ). Кажется true
является настройкой по умолчанию ?
$ w3m -show-option | grep color
-o color= Display with color
-o basic_color= Color of normal character
-o anchor_color= Color of anchor
-o image_color= Color of image link
-o form_color= Color of form
-o mark_color= Color of mark
-o bg_color= Color of background
-o active_style= Enable coloring of active link
-o active_color= Color of currently active link
-o visited_anchor= Use visited link color
-o visited_color= Color of visited link
В Debian /etc/skel/.bashrc
есть несколько строк, управляющих цветом в зависимости от TERM
,force_color_prompt
(color_prompt
)и наличия /usr/bin/dircolors
. Вероятно, у вас есть что-то подобное в вашей системе.
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
#alias grep='grep --color=auto'
#alias fgrep='fgrep --color=auto'
#alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
Экспорт TERM=xterm-mono
и удаление приведенных выше строк работает, за исключением цветов в w3m
.
Read command removes double space and Keeps only one
Нет. Команда read
сама по себе сохраняет внутренние пробелы как есть (, однако она будет обрезать начальные и конечные пробелы, если вы не установите IFS
пустым; он также искажает обратную косую черту, если вы не используете-r
).
read myVar <<<'Apr 4'
echo "$myVar" # will output: Apr 4
Это вы потом теряете пробелы из-за того, что не удваиваете -цитирование переменных:
myVar2='Apr 4'
echo $myVar2 # will mangle spaces, please always use "$myVar2" instead
Неправильное заключение переменных в кавычки не только приводит к некорректной работе сценария, но и может представлять потенциальную угрозу безопасности.
Немного правильнее будет команда
ssh -qt remote-user-name@xxx.xxx.xxx.xxx "sed -i 's/oldlogsdate=.*/oldlogsdate=\"$oldlogsdate\"/' ~/.bash_profile"
Но это не универсально и в любом случае небезопасно, потому что не учитывает, что значение $oldlogsdate
потенциально может содержать не только пробелы, но и апострофы, косые черты, обратные косые черты, знаки доллара и восклицательные знаки.