Bash/Prompt customization

本文介绍了一个 Bash 脚本,该脚本用于自定义命令行界面的提示符,包括使用不同的颜色来显示用户名、主机名、工作目录等信息,并根据返回状态改变颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash

function pprom2 {
ret_num=$?

# regular colors
local K="\[\033[0;30m\]"  # black
local R="\[\033[0;31m\]"  # red
local G="\[\033[0;32m\]"  # green
local Y="\[\033[0;33m\]"  # yellow
local B="\[\033[0;34m\]"  # blue
local M="\[\033[0;35m\]"  # magenta
local C="\[\033[0;36m\]"  # cyan
local W="\[\033[0;37m\]"  # white

local NONE="\[\033[0m\]"     # none

# emphasized (bolded) colors
local EMK="\[\033[1;30m\]"
local EMR="\[\033[1;31m\]"
local EMG="\[\033[1;32m\]"
local EMY="\[\033[1;33m\]"
local EMB="\[\033[1;34m\]"
local EMM="\[\033[1;35m\]"
local EMC="\[\033[1;36m\]"
local EMW="\[\033[1;37m\]"


case $TERM in
    xterm*)
        TITLEBAR='\[\033]0;\u@\h:\w\007\]'
        ;;  
    *)  
        TITLEBAR=""
        ;;  
esac

if [ "x$SSH3_CONNECTION" != "x" ]; then
  LOCAL_IP=`echo "$SSH_CONNECTION" | awk '{print $3}'`
elif [ "x$SSH2_CONNETCION" != x ]; then
  LOCAL_IP=`echo "$SSH2_CONNECTION" | awk '{print $3}'`
else
  LOCAL_IP=`/sbin/ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}'`
fi

LOCAL_IP=${LOCAL_IP:=`hostname`}

# user color
local UC=$NONE     # user's color
[ $UID -eq "0" ] && UC=$EMR # root's color
#if [[ $(id -u) -eq 0 ]]; then
#  UC=$LIGHT_RED
#else
#  UC='\[\e[0m\]\[\e[0;92m\]'
#fi

PS1="tty:[$EMC\l$NONE] \
jobs:[$EMC\j$NONE] \
cwd:[$UC\u$NONE@$G$LOCAL_IP$NONE:$EMC\w$NONE]\n\
`date +%H:%M` [\`if [ \$ret_num != 0 ]; then echo \"$EMR$ret_num$NONE\"; else echo \"$EMG$ret_num$NONE\"; fi\`] \$ "
}

PROMPT_COMMAND=pprom2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值