[shell日记]echo
编辑:523066680
继续继续,这次将在流水学英语后面补上一点富有色彩的知识。我也建议直接跳到后面去
在ubuntu下,将这个文本保存为sh格式,用gedit查看,将会看到不同颜色的解释。
并修改下背景颜色 编辑--首选项--字体和颜色 ,选Cobalt-蓝色基调的颜色主题。
深蓝色到暗的背景,看起来将会很舒适。
下面是我粗制的翻译(我认为可直译且简单,或者我不会的,不翻译):
echo - display a line of text
"展示文本行"
SYNOPSIS
echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
DESCRIPTION
Echo the STRING(s) to standard output.
"显示字符串到标准输出。"
-n do not output the trailing newline
"不输出后面接的新行(默认是最后有个换行嘛)"
#trailing: 后续
-e enable interpretation of backslash escapes
"允许 反斜杠 \ (对字符)的转义"
#interpretation 解释;说明
#escape 逃避;换码; 这里指转义
-E disable interpretation of backslash escapes (default)
"不允许解释,(对于)反斜杠转义字符(默认)"
#backslash escapes: 现在我翻译为 转移字符
--help display this help and exit
--version
output version information and exit
If -e is in effect, the following sequences are recognized:
"如果-e是开启的,以下序列将被识别"
#effect: 效果;作用;效应
#following: 接着的;下一个
#sequence: 序列;一连串
\0NNN the character whose ASCII code is NNN (octal)
"NNN (八进制) 是某个字符的ASCII码 " #octal: 八进制
"用\后接八进制的ASCII码来表示对应的ASCII字符"
\\ backslash
#backslash: 反斜杠 "\"
\a alert (BEL)
#警告 貌似可以让蜂鸣器响一声,我这里没响…… ubuntu9.10
\b backspace
#退格
\c produce no further output
"不进一步输出" #我猜的,实际测试后面的字符都不输出了。
#further 进一步的
\f form feed
"(百度字典)跳页;换页 实际测试结果:像换行"
#form: 格式 feed:供给;(打印机)进纸
\n new line
\r carriage return
#carriage 有好几种意思,接近的是:刀具溜座 意思就是往回溜咯
#我测试结果跟\b差不多
\t horizontal tab
"水平跳格" #horizontal 水平
\v vertical tab
"垂直跳格" #vertical 垂直;顶点
#然后我跳了两段
"SEE ALSO
The full documentation for echo is maintained as a Texinfo manual. If
the info and echo programs are properly installed at your site, the
command
info coreutils 'echo invocation'
should give you access to the complete manual."
执行他说的那句话,就可以通向更完整的 echo 使用手册。
所谓更完整的echo 手册,我没找到"关于彩色字符的控制…… "
倒是多了两个用ANSCII码表示字符的方式
\0NNN
the eight-bit value that is the octal number NNN (zero to
three octal digits)
\NNN
the eight-bit value that is the octal number NNN (one to
three octal digits)
\xHH
the eight-bit value that is the hexadecimal number HH (one or
two hexadecimal digits)
###########################################################################
呼,为了echo更多的学习,我要把《高级Bash脚本编程指南》 教程里看到的东东添油加醋带过来,
### 引用段落 ###
{
可以在有色的背景上用下面的模板写有色彩的文本.
echo -e '\E[COLOR1;COLOR2mSome text goes here.'
"\E[" 开始转义序列. 分号分隔的数值"COLOR1" 和 "COLOR2" 指定前景色和背景色, 数值和
色彩的对应参见下面的表格. (数值的顺序不是有关系的,因为前景色和背景色数值都落在不
重叠的范围里.) "m"终止该转义序列, 然后文本以结束的转义指定的属性显示.
也要注意到用单引号引用了echo -e后面的余下命令序列.
下表的数值是在 rxvt 终端运行的结果. 具体效果可能在其他的各种终端上不一样.
table 33-1. 转义序列中数值和彩色的对应
====================
色彩 前景色 背景色
黑 30 40
红 31 41
绿 32 42
黄 33 43
蓝 34 44
洋红 35 45
青 36 46
白 37 47
====================
}
我ubuntu9.10下测试 37是灰白色,38,39更白,不过,还有个转义序列可以加粗高亮的
注意他说的:"数值的顺序不是有关系的,因为前景色和背景色数值都落在不
重叠的范围里"
所以
echo -e "\E[37;40mSTR"
的结果等同于
echo -e "\E[40;37mSTR"
### 这个是前面部分的内容,我转在后面 ###
{
最简单也可能是最有用的ANSI转义序列是加粗文本, \033[1m ... \033[0m. \033 触发转义序
列, 而 "[1" 启用加粗属性, 而"[0" 表示切换回禁用加粗状态. "m"则表示终止一个转义序列.
bash$ echo -e "\033[1mThis is bold text.\033[0m"
一种相似的转义序列可切换下划线效果 (在 rxvt 和 aterm 上).
bash$ echo -e "\033[4mThis is underlined text.\033[0m"
注意: echo使用-e选项可以启用转义序列.
其他的转义序列可用于更改文本或/和背景色彩.
bash$ echo -e '\E[34;47mThis prints in blue.'; tput sgr0
bash$ echo -e '\E[33;44m'"yellow text on blue background"; tput sgr0
bash$ echo -e '\E[1;33;44m'"BOLD yellow text on blue background"; tput sgr0
注意: 通常为淡色的前景色文本设置粗体效果是较好的.
tput sgr0 把终端设置恢复为原样. 如果省略这一句会使后续在该终端的输出仍为蓝色.
注意: 因为tput sgr0 在某些环境下不能恢复终端设置, echo -ne \E[0m 会是更好的选择.
}
我最后的提醒是,特别是作特效的时候,可能只想要一个方格的 背景颜色改变,
而变颜色后是整个窗口接下来的部分背景色都是变色的。这就郁闷,当时我想到的是后接 \E[原来的文本颜色;原来的背景色m
来隔离刚刚改动过的颜色。
原来引用部分提到的 tput sgr0 可以直接恢复默认的,自己根据需求选择咯。
小效果:[code]
#!/bin/bash
#Author: 523066680@linux110
for ((i=0;i<=80;i++))
do
str="$str "
newline="$newline
"
done
let x=0,tmpy=-10,xadd=1,xaddadd=1,yadd=1
while :
do
let x+=xadd,xadd+=xaddadd,tmpy+=yadd,y=tmpy+10,orthe=21-y,color=x%8+30,c2=color+11
clear
echo "${newline:0:$y}"
echo -e "${str:0:$x} \E[${color};${c2}mO \E[33;40m${color} ${c2} "
echo "${newline:0:$orthe}"
if [ ${xadd/-/} -ge 7 ] ;then let xaddadd*=-1 ;fi
if [ ${tmpy/-/} -ge 10 ] ;then let yadd*=-1; fi
sleep 0.1
done
[/code]


aaa0000306 于 2014-05-01 03:11:25发表:
好
lianggecai 于 2010-11-22 18:54:26发表:
谢谢楼主啊,这个太好了。谢谢!
lpy_study 于 2010-03-31 12:30:44发表:
顶
cool_lee 于 2010-03-29 10:23:56发表:
顶下先
523066680 于 2010-03-27 18:34:50发表:
楼上头像好特别
zhangyinghao452 于 2010-03-27 04:32:58发表:
这个有意思
xiaokeding 于 2010-02-19 23:02:18发表:
不懂,顶一下先
wyfwyt 于 2010-02-09 19:51:51发表:
感谢 感谢楼主 强烈主持
tbtnel 于 2010-01-31 08:14:39发表:
深奥阿