Linux shell之打印输出
介绍
经常需要和shell命令打交道,但是一直没有系统的学习,接下来会花1到2个月的时间系统的学习一下shell命令,接下来就开启shell命令的奇妙旅行吧。本章主要介绍shell的打印输出。
知识要点
- shell脚本都是以#!/bin/bash开头;这是固定的写法,其中/bin/bash是bash命令的路径。
- 一般都会通过chmod授予shell脚本的可执行权限。
- 在shell脚本中的打印输出通常会有echo和printf两种,前者会自动换行。
- 在shell中如果用双引号("")作为打印输出的内容时,如果双引号中有特殊字符需要在特殊字符前加上转义字符\,当然也可以使用单引号或者不使用引号直接输出,使用单引号或者不使用就不需要用到转义字符。
格式替代符
有一些常用的格式替代符会经常在打印输出中被用到,格式替代符只能用在printf输出中。
%-5s:表示5个字符宽度,其中的-表示左对齐
%-4.2f:其中的f表示浮点型,4.2代表长度为4个字符且小数点2位,如果小数点超过2会进行四舍五入,-表示左对齐。
整形:
%d:整数的参数会被转成一有符号的十进制数字
%u:整数的参数会被转成一无符号的十进制数字
%o:整数的参数会被转成一无符号的八进制数字
%x:整数的参数会被转成一无符号的十六进制数字, 并以小写abcdef表示
%X:整数的参数会被转成一无符号的十六进制数字, 并以大写ABCDEF表示
浮点型数:
%f double型的参数会被转成十进制数字, 默认取小数点以下六位, 四舍五入
%e double型的参数以指数形式打印, 有一个数字会在小数点前, 六位数字在小数点后, 而在指数部分会以小写的e来表示.
%E 与%e作用相同, 唯一区别是指数部分将以大写的E来表示.
%g double型的参数会自动选择以%f或%e的格式来打印, 其标准是根据欲打印的数值及所设置的有效位数来决定.
%G 与%g作用相同, 唯一区别在以指数形态打印时会选择%E格式.
字符及字符串:
%c 读字符串的第一个字符
%s 输出指定宽度的字符内容.
%p 如果是参数是"void *"型指针则使用十六进制格式显示
打印输出
在写脚本的时候更多的会使用echo作为打印输出,且习惯性的会使用双引号。
echo
[root@localhost tmp]# echo "hello word"
hello word
printf
默认printf是不换行的
[root@localhost tmp]# printf "hello word"
hello word[root@localhost tmp]#
需要换行加上\n参数
[root@localhost tmp]# printf "hello word\n"
hello word
[root@localhost tmp]#
编写shell脚本
vim scrip.sh
#!/bin/bash
printf "%-5s %-10s %-4s\n" No Name Mark;
printf "%-5s %-10s %-4.2f\n" 1 aaa 10.111;
printf "%-5s %-10s %-4.2f\n" 2 bbb 20.146;
授予脚本执行权限:chmod u+x scrip.sh

如果使用echo就不能用格式替代符
#!/bin/bash
echo No Name Mark;
echo 1 aaa 10.111;
echo 2 bbb 20.146;

注意事项
在echo,printf中使用-e,-n参数时,-e,-n应该出现在命令行其它字符之前。
-e:如果要在echo的双引号使用转义序列作为参数得需要使用-e参数
-n:忽略末尾的换行符
不使用-e参数
[root@localhost tmp]# echo "1\n2"
1\n2
使用-e参数
[root@localhost tmp]# echo -e "1\n2"
1
2
转义序列:
/n:换行
/t:tab键
彩色输出
字体颜色包括:0=重置,30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=洋红,36=青色,37=白色
背景颜色包括:0=重置,40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=洋红,46=青色,47=白色
echo -e "\e[1;32m hello word \e[0m"

\e[1;32m:将字体颜色设为绿色,\e[0m:将颜色重置
总结
如果输出的内容涉及到特殊字符建议使用printf来输出。
|
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
Linux shell之打印输出的更多相关文章
- Linux Shell常用技巧(一) RE
一. 特殊文件: /dev/null和/dev/tty Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty.其中/dev/null将会丢掉所有写入它 ...
- Linux Shell常用技巧(一)
一. 特殊文件: /dev/null和/dev/tty Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty.其中/dev/null将会丢掉所有写入它 ...
- Linux Shell常用技巧
转载自http://www.cnblogs.com/stephen-liu74/ 一. 特殊文件: /dev/null和/dev/tty Linux系统提供了两个对Shell编程非常有用的特殊文 ...
- (linux shell)第一章--小试牛刀(下)
文章来源: (linux shell)第一章--小试牛刀(下) 1.6 数组和关联数组 1.6.1 预备知识 Bash同一时候支持普通数组和关联数组.普通数组仅仅能使用整数作为数组索引,而关联数组能够 ...
- 超全整理!Linux shell及常用36类命令汇总
本文采编自http://blog.csdn.net,作者为ZHXGXN,版权归作者所有! 使用Linux shell是一些程序员每天的基本工作,但我们经常会忘记一些有用的shell命令和技巧.当然,命 ...
- [转帖]Linux Shell常用技巧(五)
Linux Shell常用技巧(五) https://zhuanlan.zhihu.com/p/73451771 1. 变量:在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义.变量的类型可 ...
- [转帖]拿小本本记下的Linux Shell常用技巧(一)
拿小本本记下的Linux Shell常用技巧(一) https://zhuanlan.zhihu.com/p/73361101 一. 特殊文件: /dev/null和/dev/tty Linux系统提 ...
- linux Shell(待学)
2. Shell 2.1 简介 shell脚本执行方式Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务.它类似于 DOS 下的 command 和后来的 cmd ...
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
随机推荐
- 在Xcode中使用Git进行源码版本控制
http://www.cocoachina.com/ios/20140524/8536.html 资讯 论坛 代码 工具 招聘 CVP 外快 博客new 登录| 注册 iOS开发 Swift Ap ...
- ASP数组全集,多维数组和一维数组[转]
ASP数组是比较好用的装载大量数据的容器.1 定义数组 有两种方式:DIM和REDIM. DIM定义的是固定个数.数据类型的数组:而REDIM则不同,它可以定义不同类型的数据,也可以定义个数并非固定的 ...
- .net/C# HttpWebRequest传送与接收参数
public string PostData(string url, string data)//url:要发送到网站的地址 data:传送需要的参数 { HttpWebRequest myReque ...
- HDU 1575
Tr A Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- win7下matplotlib安装(64位)
前段时间爬了一些数据,想着以后要将数据的分析结果什么的展示出来,就想着下个MATLAB,某天在微信上的一篇文章发现matplotlib库,是用于Python的一个不错的图形化库,就想着装上耍耍.不过安 ...
- Ubuntu 14.04安装mysql
在ubuntu kylin上面安装mysq的过程中遇到一些问题,记录如下, wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-server_5. ...
- CI框架中怎么传递大数据给PHP?
CI中怎么将HTML页面中的大数据(如富文本)通过CONTROLLER传递给MODEL中的函数?难道还是通过构造链接的形式传递吗?求指点.
- sql如何做递归层次查询
DROP FUNCTION IF EXISTS `WhlFucGetIDsOnID`; CREATE DEFINER = `root`@`127.0.0.1` FUNCTION `WhlFucGetI ...
- python数据挖掘领域工具包
原文:http://qxde01.blog.163.com/blog/static/67335744201368101922991/ Python在科学计算领域,有两个重要的扩展模块:Numpy和Sc ...
- JAVA/Android Map与String的转换方法
在Android开发中 Map与String的转换在,在一些需求中经常用到,使用net.sf.json.JSONObject.fromObject可以方便的将string转为Map.但需要导入jar包 ...