Linux Shell脚本系列教程(二):终端打印命令详解

所属分类: 脚本专栏 / linux shell 阅读数: 1207
收藏 0 赞 0 分享

终端打印

终端是交互式工具,用户可以通过它与shell环境进行交互。在终端中打印文本是大多数shell脚本和工具日常需要执行的基本任务。通过终端打印,人们可以知道系统的运行状态,这对用户来说是至关重要的。

echo终端打印

复制代码 代码如下:

echo "Welcome to Bash"
echo 'Welcome to Bash'
echo  Welcome to Bash

以上三种方法的效果是一样的,输出内容都是“Welcome to Bash”,并在末尾添加换行符。在默认情况下,echo在每次调用后会添加一个换行符,而无需手动输入换行符。此处,建议养成一种习惯,对于其他的方法了解即可。

使用双引号时的限制

使用双引号输出字符串时,字符串内不能含有特殊字符(!),或者要在特殊字符前加转义字符\。使用单引号或者不使用引号,也可以正常输出特殊字符。

复制代码 代码如下:

echo "cannot include !"   #这种情况下将会报错
echo "cannot include \!"  #这种情况下可以正常输出!
echo cannot include !     #这种情况下可以正常输出!
echo 'cannot include !'   #这种情况下可以正常输出!

使用单引号的限制
在使用单引号输出字符串时,变量替换将会失效。使用双引号或者不使用引号可以正常输出被替换的变量。

复制代码 代码如下:

var="abcd"
echo '1234$var'          #这种情况下将输出 1234$var
echo 1234$var            #这种情况下将输出 1234abcd
echo "1234$var"          #这种情况下将输出 1234abcd

不使用引号时的限制

在不使用引号输出字符串的情况下,无法显示分号(;),因为分号在Bash中被用作命令定界符。使用单引号或者双引号可以输出分号。

复制代码 代码如下:

echo hello;hello  #第一个hello被当成字符串输出,第二个被当成命令

printf终端打印

printf使用的参数和C语言中的printf函数一样,使用引用文本或由空格分隔的参数。在printf函数中,我们可以使用格式化字符串,指定字符串的宽度、左右对齐方式等。在默认情况下,printf不会在行尾添加换行符,需要手动添加。

复制代码 代码如下:

printf "Hello world"                    #使用引用字符
printf "%-5s %-10s %-4s\n" No Name Mark #指定宽度及左对齐方式
printf "%-5s %-10s %-4s\n" 1 Sarath 80.3456

工作原理

%s,%c,%d,%f都是格式替换字符,其所对应的参数可以置于带引号的格式字符串之后。
%-5s指明了一个格式为左对齐且宽度为5的字符串替换,-表示左对齐,若不指定对齐方式,则默认采用右对齐方式。宽度指定了保留给某个变量的字符数,如果要输出的内容宽度不足,则用空格填充,若多于指定宽度,则超出部分被丢弃。
%4.2f表示指定小数可以保留两个小数位,要注意的是4并不代表整数部分的位数,也不代表整数位和小数位的和。

注意:使用echo和printf的命令选项时,要保证选项出现在命令行内所有字符串之前,否者Bash会将选项视为另一个字符串。

补充内容

在echo中使用转义字符

在默认情况下,echo会自动在输出字符串末尾添加换行符,可以使用-n选项来忽略结尾的换行符。echo同样接受双引号字符串内的转义序列作为参数。如果需要使用转义序列,则采用echo -e “包含转义序列的字符串”这种形式,在ubuntu14.04中,不需要添加-e选项,若添加,则-e选项会被作为字符串的一部分输出。

复制代码 代码如下:

echo "Hello World"           #将在末尾添加换行符
echo -n "Hello Wordl"        #末尾不会添加换行符
echo -e "1\t2\t3"            #将输出 -e 1  2   3
echo "1\t2\t3"               #将输出1  2   3

打印彩色输出

在终端中生成颜色输出,有助于我们从大量文本中快速定位特定的信息,我们可以使用转义序列来实现颜色输出。

每种文本颜色都有对应的颜色码。

复制代码 代码如下:

echo -e "\e[1;31m This is red text \e[0m"
echo -e "\e[1;41m This is red background \e[0m"
#ubuntu14.04不支持这种方式改变文本或者背景颜色

更多精彩内容其他人还在看

linux创建用户useradd命令代码示例

本文通过代码示例给大家介绍了adduser与useradd命令二者的关系 以及使用useradd命令添加用户的方法,需要的朋友参考下吧
收藏 0 赞 0 分享

Linux 中LVS NAT 配置步骤的详解

这篇文章主要介绍了Linux 中LVS NAT 配置步骤的详解的相关资料,这里列出详细的实现步骤,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux中的内核链表实例详解

这篇文章主要介绍了Linux中的内核链表实例详解的相关资料,链表中一般都要进行初始化、插入、删除、显示、释放链表,寻找节点这几个操作,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell中特殊字符的用法总结大全

这篇文章主要给大家总结了关于Shell中特殊字符的相关资料,文中包括分好、&、#、!、$、大于号、单双引号等等一系列特殊字符的用法,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
收藏 0 赞 0 分享

Shell脚步攻略之管道重定向基础

管道是为了解决进程间通信问题而存在,它可以让两个进程之间的数据进行传递,将一个进程的输出数据传递给另一个进程作为其输入数据
收藏 0 赞 0 分享

Linux shell数组循环的实例详解

这篇文章主要介绍了Linux shell数组循环的实例详解的相关资料,这里举例说明如何实现shell数组循环,需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell内置判断语句

内置判断,成功的时候返回0,不成功返回非零。接下来通过本文重点给大家介绍linux shell内置判断语句,感兴趣的的朋友一起看看吧
收藏 0 赞 0 分享

Linux文件的归档和压缩命令

文件归档命令tar,文件归档有好多好处,方便使用易于管理,接下来通过本文给大家分享linux文件的归档和压缩命令,感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

Linux Shell中curl和wget使用代理IP的方法教程

这篇文章主要给大家介绍了关于在Linux Shell中curl和wget使用代理IP的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
收藏 0 赞 0 分享

Linux 日常常用指令及应用小结

最近在学习一些基本的Linux指令,在这里总结一下,在搭环境中常用的一些指令,熟悉这些指令就基本能够使用CentOS进行日常操作了
收藏 0 赞 0 分享
查看更多