这是我的bash-prompt-fiddling-time(必须在某一天发生......)。
我试图获得2行提示:
我几乎就在那里,但是我无法将背景颜色破解到线的末端"部分。不太好。
汇总来自多个来源的信息,最重要的是来自here和here,我得到this result (terminal screenshot)。
正如您所看到的,COLUMNS计算出现了一些问题:
这是我的bashrc代码:
PROMPT_COMMAND=__prompt_command
__prompt_command()
{
local EXIT="$?"
local Red='\[\033[1;38;5;9m\]'
local Green='\[\033[1;38;5;10m\]'
local Gray='\[\033[0;38;5;248m\]'
local BgBlue='\[\033[48;5;253;1;38;5;12m\]'
local BgPurple='\[\033[48;5;253;1;38;5;93m\]'
local None='\[\e[0m\]'
PS1="${BgPurple}\u@\h:${BgBlue}\$PWD"
printf -v TC_SPC "%${COLUMNS}s" ''
COLUMNS=$(tput cols)
PS1=`echo $PS1 | sed "s/$/$TC_SPC/; s/^\\(.\\{${COLUMNS}\\}\\) */\\1/"`
PS1+="\n${Gray}\D{%F %T}"
if [ $EXIT != 0 ]; then
PS1+=" ${Red} O_o ${None}" # Add red if exit code non 0
else
PS1+="${Green} ^_^ ${None}"
fi
}
我尝试了更多的黑客但没有成功。
哦,还有另一个更复杂的sed位版本,我也试过了:
PS1=`echo $PS1 | sed "s/$/$TC_SPC/; s/^\\(\\(\\o33\\[[0-9;]*[a-zA-Z]\\)*\\)\\([^\o033]\\{${COLUMNS}\\}\\) */\\1\\3/"`
Different result (terminal screenshot)但仍不行。
此时我正在寻求帮助!
答案 0 :(得分:0)
而不是:
.-modal-open .fixed,
.-modal-open .content {
overflow-y:scroll;
}
使用:
printf -v TC_SPC "%${COLUMNS}s" ''
COLUMNS=$(tput cols)
PS1=`echo $PS1 | sed "s/$/$TC_SPC/; s/^\\(.\\{${COLUMNS}\\}\\) */\\1/"`
答案 1 :(得分:0)
这是工作解决方案,感谢Eric"擦除到行尾#34;提示。
PROMPT_COMMAND=__prompt_command # Func to gen PS1 after CMDs
__prompt_command()
{
local EXIT="$?" # This needs to be first (retrieves last commmand exit code)
local Red='\[\033[1;38;5;9m\]'
local Green='\[\033[1;38;5;10m\]'
local Gray='\[\033[0;38;5;248m\]'
local BgBlue='\[\033[48;5;253;1;38;5;12m\]'
local BgPurple='\[\033[48;5;253;1;38;5;93m\]'
local None='\[\e[0m\]'
PS1="${BgPurple}\u@\h:${BgBlue}\$PWD"
PS1+="\033[K" # erase to end of 1st line (background color stays)
PS1+="\n${Gray}\D{%F %T}\a"
if [ $EXIT != 0 ]; then
PS1+="${Red} O_o ${None}" # Add red if exit code non 0
else
PS1+="${Green} ^_^ ${None}"
fi
PS1+="\033[K" # erase to end of 2nd line (no more background color)
}
here is the result (terminal screenshot)。一个更快乐的提示老板......