博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
推荐一款shell自定义提示符Sexy Solarized Bash Prompt
阅读量:7128 次
发布时间:2019-06-28

本文共 2733 字,大约阅读时间需要 9 分钟。

hot3.png

特点:

  1. 显示当前用户

  2. 显示当前工作目录

  3. 自动解析当前所在 git分支, 文件改动,svn路径 或 tag等

部分版本的版本控制工具提示信息不全, 需要调整该脚本的解析指令

提示符效果:

003719_LpYw_2400083.jpg

代码:

# Sexy Solarized Bash Prompt, inspired by "Extravagant Zsh Prompt"# Customized for the Solarized color scheme by Sean O'Neilif tput setaf 1 &> /dev/null; then    if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then      BASE03=$(tput setaf 234)      BASE02=$(tput setaf 235)      BASE01=$(tput setaf 240)      BASE00=$(tput setaf 241)      BASE0=$(tput setaf 244)      BASE1=$(tput setaf 245)      BASE2=$(tput setaf 254)      BASE3=$(tput setaf 230)      YELLOW=$(tput setaf 136)      ORANGE=$(tput setaf 166)      RED=$(tput setaf 160)      MAGENTA=$(tput setaf 125)      VIOLET=$(tput setaf 61)      BLUE=$(tput setaf 33)      CYAN=$(tput setaf 37)      GREEN=$(tput setaf 64)    else      BASE03=$(tput setaf 8)      BASE02=$(tput setaf 0)      BASE01=$(tput setaf 10)      BASE00=$(tput setaf 11)      BASE0=$(tput setaf 12)      BASE1=$(tput setaf 14)      BASE2=$(tput setaf 7)      BASE3=$(tput setaf 15)      YELLOW=$(tput setaf 3)      ORANGE=$(tput setaf 9)      RED=$(tput setaf 1)      MAGENTA=$(tput setaf 5)      VIOLET=$(tput setaf 13)      BLUE=$(tput setaf 4)      CYAN=$(tput setaf 6)      GREEN=$(tput setaf 2)    fi    BOLD=$(tput bold)    RESET=$(tput sgr0)else    # Linux console colors. I don't have the energy    # to figure out the Solarized values    MAGENTA="\033[1;31m"    ORANGE="\033[1;33m"    GREEN="\033[1;32m"    PURPLE="\033[1;35m"    WHITE="\033[1;37m"    BOLD=""    RESET="\033[m"fiparse_git_dirty () {    [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit, working directory clean" ]] && echo "*"}parse_git_branch () {    branch=$(git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/\1$(parse_git_dirty)/")    echo $branch}parse_svn_branch() {    svn info &> /dev/null && parse_svn_url}parse_svn_url() {    local url=$(svn info 2>/dev/null | sed -ne 's#^Relative URL: ##p')    if [[ $url =~ trunk ]]; then        echo trunk    elif [[ $url =~ /branches/ ]]; then        echo $url | sed -e 's#^.*/branches/\([^/]*\).*$#branch:\1#'    elif [[ $url =~ /tags/ ]]; then        echo $url | sed -e 's#^.*/tags/\([^/]*\).*$#tag:\1#'    fi}parse_vcs() {    branch=$(parse_git_branch)    if [ -n "$branch" ]; then        echo $branch    else        parse_svn_branch    fi}PS1="\[${BOLD}${CYAN}\]\u \[$BASE0\]in \[$BLUE\]\w\[$BASE0\]\$([[ -n \$(git branch 2> /dev/null) || -n \$(svn info 2> /dev/null) ]] && echo \" on \")\[$YELLOW\]\$(parse_vcs)\[$BASE0\] \$ \[$RESET\]"

使用方法:

.代码保存到 ~/prompt.sh编辑.bashrc, 追加一行脚本:. ~/prompt.sh

注意事项:

.可以先手动执行一下脚本,调试下效果: . ~/prompt.sh如果有回车符\r之类的报错, 请编辑下prompt.sh, 删除其中的windows回车符\r, 因为linux下只是别换行符\n。

转载于:https://my.oschina.net/u/2400083/blog/514530

你可能感兴趣的文章
shiro整合oauth
查看>>
超级网管员——网络管理
查看>>
AjaxControltoolkit(工具包)安装步骤说明
查看>>
利用组策略进行的一次Windows主机安全整改
查看>>
Ruby语法学习笔记(1)
查看>>
Windows Phone 7 使用选择器(Chooser)
查看>>
QOS 之 WRED
查看>>
ASP.NET MVC5 知识点整理
查看>>
CCNP 640-892知识点中文精简解释
查看>>
listview适配器与加载过程详解
查看>>
SDN控制器列表
查看>>
LeetCode - 8. String to Integer (atoi)
查看>>
在两个php下session无法使用的问题
查看>>
说一说关于破解支付宝AR红包的事
查看>>
Oracle DG之--构建Physical Standby(一主库对应多备库)
查看>>
深入学习 Hyper-V 的导出和导入
查看>>
为迎接祖国60华诞,更换博客页面了!!!
查看>>
基于OHCI的USB主机 —— USB设备去的配置描述符
查看>>
IO Foundation 6-解压缩zip文件
查看>>
收件人管理及活动目录集成
查看>>