Linux shell 脚本编程学习笔记(echo)

时间:2022-01-04 15:36:32

shell 脚本通常是以#!起始的文本文件,如:

#!/bin/bash

在Bash中,每个命令或命令序列是通过分号或者换行符来分隔的,如:

$cmd1 ; cmd2

它等同于:

$cmd1

$cmd2


echo是用于终端打印的基本命令,默认情况下每次调用后会添加一个换行符(可使用 -n参数来忽略结尾的换行符),它有三种打印方式

带双引号的文本:

$echo "welcome to bash"

welcome to bash

不带双引号的文本:

$echo welcome to bash

welcome to bash

使用单引号的文本:

$echo 'text in quote'

text in quote


注:1、想打印一些特殊符号如'!'(后面还跟着其他字符)应在其之前加一个转义字符'\'或者不加双引号

2、使用不带引号的echo时,你没法在所要显示的文本中使用,因为在bash shell中被用作命令界定符

3、使用带单引号的echo时,bash不会对单引号中的变量(如$var)求值,而只是照原样显示

4、echo接受双引号字符串内的转义序列作为参数,要使用转义序列则采用echo -e "包含转义序列的字符串",例如:

echo -e "1\t2\t3"

1 2 3

5、打印彩色输出,每种颜色都有对应的颜色码,如:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37。要打印彩色文本可输入如下命令:

echo -e "\e[1;31m This is red text \e[0m"

This is red text

\e[1;31m将颜色设为红色,\e[0m将颜色重置,只需将31替换成不同的颜色码即可

6、设置彩色输出背景,经常使用的颜色码为:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47。要打印彩色背景文本可输入如下命令:

echo -e "\e[1;42m Green background \e[0m"


另一个可用于终端打印的命令是printf,它使用的参数和C语言中的printf函数一样,默认不会自动添加换行符,可使用格式化字符串,例如:

#!/bin/bash


printf  "%-5s %-10s %-4s\n" No Name Mark

输出为:

No   Name      Mark