目录

  • shell的输入
  • 关于`cat`
  • shell的输出


shell的输入

前面学习的过程中,我们提到了使用read -p命令,shell可以接收用户输入的参数并赋值给对应的变量,这里再介绍一个echo -n,可以实现同样的效果。

#!/bin/bash
# 关于 read 命令的使用

read -p "please input your name:" name
echo "hello,$name!"

echo -n "请输入你的名字:"
read name
echo "你好,$name"

使用echo可以输出空行。

关于cat

以前我们知道cat命令是作为一个查看文件内容的命令来使用,今天这里教大家一个另类的cat的使用技巧。
有时候我们需要在控制台做一些简单菜单的效果,菜单可能有缩进对齐等,要求需要系统对我们的菜单原样输出,保持原来的空格和缩进,这人有个名词heredoc,也叫字符串标记输出。利用cat就可以实现这样的效果。
例如:需要做一个简单的学习管理系统的菜单如下:

学生管理系统:
	1).添加学生
	2).删除学生
	3).查看学生
	4).退出系统

语法:cat << 开始标记符具体内用,保持格式结束标识符 实现上面的菜单代码如下:

#!/bin/bash
# heredoc 实现菜单

cat <<x
学生管理系统:
        1).添加学生
        2).删除学生
        3).查看学生
        4).退出系统
x

注意:起始标识符和结束标识符需要保持一致。

shell的输出

我们常用的echo可以添加一个-e选项,这样echo命令可以解析转义字符级颜色信息。
例如:

echo "my name is zhangsan \n i am 18 years old\n"

无法解析\n

my name is zhangsan \n i am 18 years old\n

使用

echo -e "my name is zhangsan \n i am 18 years old\n"

可以解析转义字符\n

my name is zhangsan
i am 18 years old

我们在启动linux服务器的时候,经常看到类似 [ok] 或者是 [failed] 的字样,这种带颜色的文字怎么通过shell实现呢?
这个同样需要echo -e来完成,刚才我们提到-e可以解析颜色。
基本语法:\033[前景颜色;背景颜色 具体内容\033[0m 很难受的一个语法,有木有?
来个 [ok]

echo -e "\033[32;40m[ok]\033[0m"

前景色和背景色各有 8 中,对应关系如下:


对应作用

30

设置黑色前景

31

设置红色前景

32

设置绿色前景

33

设置棕色前景

34

设置蓝色前景

35

设置紫色前景

36

设置青色前景

37

设置白色前景

背景色

40

设置黑色背景

41

设置红色背景

42

设置绿色背景

43

设置棕色背景

44

设置蓝色背景

45

设置紫色背景

46

设置青色背景

47

设置白色背景

而且后面的 [0m是必须要有的,你可以试试不加的效果。

好了,今天的内容就到这里了,下节我们开始学习shell的条件测试,它可是流程控制必不可少的部分。