本文主要描述Linux系统中echo和printf命令的使用方法,包括命令参数的含义、使用技巧。
1、echo
了解一个命令我们首先要知道它能做什么,它有哪些参数,参数的含义,可以实现我们哪方面的需求。 echo可以直接将字符串打印输出到屏幕,也可以重定向输出到指定文件。
echo的语法:echo [option] [arguments]。首先看下字符串Hello Word打印
$ echo "Hello World"
Hello World
$
输出变量值
$ VAR1="Hello World"
$ echo "${VAR1}"
Hello World
可以观察到输出自动换行了。那如果我不想输出自动换行呢,带上参数-n?
$ echo -n "Hello World"
Hello World$
注意观察美元$符号的位置。这只是简单的输出,如果我想格式化输出字符串呢,先看下直接输出的
$ echo "Hello World
I am Back"
Hello World
I am Back
$
可以看到,直接输出了 (制表符)、 (换行符),与我们预期不符,加上参数-e,如下
$ echo -e "Hello World
I am Back"
Hello World
I am Back
$
可以看到, (制表符)、 (换行符)实现了作用,符合我们的预期要求。我们来看下echo所支持的参数和所支持的反斜线控制字符
echo支持参数:
-e :启用反斜线控制字符的转换
-n :取消行末之换行符号(与 -e 选项下的 c 字符同义)
echo支持反斜线控制字符:
:NEWLINE,换行字符(常用)
:TAB,表格跳位键(常用)
a:ALERT / BELL (从系统喇叭送出铃声)
:BACKSPACE ,也就是向左删除键
c:取消行末之换行符号
E:ESCAPE,跳脱键
f:FORMFEED,换页字符
:RETURN,回车键
v:VERTICAL TAB,垂直表格跳位键
:ASCII 八进位编码(以 x 开首为十六进制)
\:反斜线本身
echo除了可以输出字符串内容外,结合重定向符号还可以完成很多工作。比如
(1)清空文件内容
$ echo > lion.txt
(2)创建制定内容的相关文件,比如SQL文件
$ rm -f select_username.sql
$ touch select_username.sql
$ echo "select username from dba_users;" >> select_username.sql
$ echo "exit" >> select_username.sql
查看下select_username.sql文件内容
$ cat select_username.sql
select username from dba_users;
exit
(3)作为函数函数返回字符串的输出,通常return都是只能返回整数。如下
#!/bin/bash
function echo_value()
{
[ -f select_username.sql ] && echo "Good" || echo "Bad"
}
return_str=$(echo_value)
echo "${return_str}"
查看输出结果(select_username.sql文件刚创建是存在的,所以判定式为true):
$ ./example.sh
Good
不太建议这么操作,建议还是使用全局变量去获取值。
(4)输出带颜色文字,注意这里是需要带参数-e。
#!/bin/bash
echo -e " 33[31mHello World 33[0m"
echo -e " 33[32mHello World 33[0m"
echo -e " 33[33mHello World 33[0m"
echo -e " 33[34mHello World 33[0m"
echo -e " 33[35mHello World 33[0m"
echo -e " 33[36mHello World 33[0m"
echo -e " 33[37mHello World 33[0m"
说明:30-黑色,31-红色,32-绿色,33-黄色或棕色,34-蓝色,35-紫色,36-青色,37-白色或灰色
输出结果如下:
带颜色输出可以起到强调作用,SHELL编程时常用。比如ERROR错误提示用红色告警、INFO信息提示用绿色等。再看下如何打印背景色,如下
#!/bin/bash
echo -e "