shell脚本之颜色效果显示以及PS1颜色实战
在bash shell脚本中我们可以使用ASCII颜色来显示文本信息。
格式:\033\[31m hello \033[0m
##m:
左侧#:这个#可以是3或者4,作用不一样。
3:前景色
4:背景色
右侧#:颜色种类
1,2,3,4,5,6,7
前景和背景同时使用:\033[##;##m hello \033[0m
#m:
加粗、闪烁等功能。
多种控制符,可组合使用,彼此间使用分号隔开。
演示:

演示背景色

前景和背景同时使用

加粗、闪烁功能


实战演练:
给自己的Linux的PS1变量添加上颜色,比如:
1、首先是我们要给自己的PS1要显示的颜色部分添加值。
export PS1='[\033[31m\u\033[0m@\033[32m\h\033[0m \033[35m\W\033[0m]\$'
这样子设置真的很不错,达到了我们的需求,但是他是有问题的,就是比如当你在输入很长的字符串之后,你会发现bash不能自动换行显示,而是覆盖同一行的开头的部分,慢慢的往后覆盖掉一开始输入的内容,这是很不乐观的,否则当我们输入过长的内容时,显示内容是个问题怎么行呢?
初步判断是加上了颜色代码才出现这样的问题,这可能是在PS1环境变量中,颜色代码不适合直接添加至PS1中,所以我们需要进行改正,就是每个颜色代码后都加上 \[ 和 \] 。
例如:
export PS1='[\[\033[31m\]\u\[\033[0m\]@\[\033[32m\]\h\[\033[0m\] \[\033[35m\]\W\[\033[0m\]]\$'
可以看出有多少个颜色代码就要加上多少个 \[ 和 \] 才行。这样子设置好之后,这个毛病就没有了,我们继续可以愉快的在终端输入长命令了。
shell脚本之颜色效果显示以及PS1颜色实战的更多相关文章
- shell脚本中使用echo显示带颜色的内容
shell脚本中使用echo显示带颜色的内容,需要使用参数-e 格式如下: echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 例如: echo -e &qu ...
- Android代码中设置字体大小,字体颜色,显示两种颜色.倒计时效果
Android代码中设置字体大小,字体颜色,显示两种颜色 在xml文件中字体大小用的像素 <TextView android:id="@+id/uppaid_time" an ...
- Linux:shell脚本字符显示特殊颜色效果
shell脚本字符显示颜色和特殊效果 (一) 颜色显示 1)字符颜色显示 #!/bin/bash #字符颜色显示 #-e:允许echo使用转义 #\[:开始位 #\[0m:结束位 #\033等同于\e ...
- Linux编程 20 shell编程(shell脚本创建,echo显示信息)
一概述 前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识.在大量编辑shell脚本前,先来学习下一些基本概念. 1.1 使用多个命令 Shell ...
- history 查看历史操作记录在shell脚本执行中无法显示问题
今天使用shell脚本想查看历史操作命令的记录于是写了一个再简单不过的脚本,可是以chmod +x 权限执行./test.sh发现执行后没有任何反应.于是查找原因:将脚本文件中的#!/bin/bash ...
- Shell脚本关于屏幕输出的字符进行颜色控制的问题
文本终端的颜色可以使用“ANSI非常规字符序列”来生成.举例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置背景成为蓝色,前景白色, ...
- 常用shell脚本命令
常用shell脚本命令 1.显示包含文字aaa的下一行的内容: sed -n '/aaa/{n;p;}' filename 2.删除当前行与下一行的内容: sed -i '/aaa/{N;d;}' f ...
- 【转】shell脚本中echo显示内容带颜色
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e.格式如下: echo -e "\033[41;36m something here \033[0m&qu ...
- shell脚本中echo显示内容带颜色
转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...
随机推荐
- SpringBoot初体验及原理解析
一.前言 上篇文章,我们聊到了SpringBoot得以实现的幕后推手,这次我们来用SpringBoot开始HelloWorld之旅.SpringBoot是Spring框架对“约定大于配置(Conv ...
- salesforce零基础学习(九十)项目中的零碎知识点小总结(三)
本次的内容其实大部分人都遇到过,也知道解决方案.但是因为没有牢记于心,导致问题再次出现还是花费了一点时间去排查了原因.在此记录下来,好记性不如烂笔头,争取下次发现类似的现象可以直接就知道原因.废话少说 ...
- 第一篇:SpringBoot2.0简单介绍
距离Spring Boot1.0发布已经4年了,今年3月份SpringBoot2.0正式发布.让我们一起来了解一下它. Spring Boot主要依赖于Spring,整合了很多框架的使用方式,帮助开发 ...
- Java并发编程笔记之CopyOnWriteArrayList源码分析
并发包中并发List只有CopyOnWriteArrayList这一个,CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行修改操作和元素迭代操作都是在底层创建一个拷贝 ...
- Maven教程(2)--Maven的配置,MyEclipse与Eclipse的配置
1.修改Maven的 repository的路径 2.找到mirrors 使用阿里云镜像 <mirror> <id>alimaven</id> <name&g ...
- SpringMVC教程3
SpringMVC教程2 一.文件上传 1.引入相关jar包 maven坐标 <!-- fileUpload 解析上传的文件用到的jar --> <dependency> &l ...
- MySQL基准测试(二)--方法
MySQL基准测试(二)--方法 目的: 方法不是越高级越好.而应该善于做减法.至简是一种智慧,首先要做的是收集MySQL的各状态数据.收集到了,不管各个时间段出现的问题,至少你手上有第一时间的状态数 ...
- Layui 获取 radio的值
var OutInvoiceType = $('#OutInvoiceType input[checked]').val(); 就可以获取到了.
- CentOS 7 安装 .Net Core 2.0 详细步骤
轰轰烈烈的Core 热潮,从部署环境开始.参照了网上不少前辈的教程,也遇到不少的坑,这边做个完整的笔记. 一.构建.Net core 2的应用程web发布,因为是用来测试centos上的core 环境 ...
- 如何获得刚刚插入数据的id
create table tblInsert ( id ,) primary key, name ) ); insert into tblInsert(name) values('张三'); sele ...