目录
- 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
的条件测试,它可是流程控制必不可少的部分。