四、Shell输入、输出功能和字符颜色设置
一、Shell输入功能
1、键盘输入
方式一:
[root@Salve four]# cat test.sh #!/bin/bash #-e 参数可以解析语句中的转义字符 echo -e "my name is user1\n my name is user2" #-n 参数可以让echo命令结尾不换行 echo -n "my name is user1\n my name is user2" echo #输出一个空行 #一个应用实例 echo -n "请输入你的名字:" read name echo $name echo "my name is $name" [root@Salve four]#./test.sh my name is user1 my name is user2 my name is user1\n my name is user2 请输入你的名字:tom tom
[root@Salve four]# cat demo.sh #!/bin/bash read -p '输入你的名字:' name echo $name [root@Salve four]#./demo.sh 输入你的名字:tom tom
二、Shell输出功能
[root@Salve four]# cat output.sh #!/bin/bash echo "Hello World!" echo -e "Hello World\nVery Good!" echo -e "\033[32;47m [test]\033[0m"
[root@Salve four]#./output.sh HelloWorld! HelloWorld VeryGood! [test]
3、字幕颜色变化
(1)、例子:
[root@Salve four]# cat out2.sh #!/bin/bash echo -e "httpd process \033[32;40m [OK] \033[0m " [root@Salve four]# sh out2.sh httpd process [OK]
\033[前景色;背景色m
\033[0m #0m代表恢复到系统默认的颜色
(3)、字符界面前景颜色与背景颜色:
前景色:30黑 31红 32绿 33黄 34蓝 35紫 36青 37白
背景色:40黑 41红 42绿 43黄 44青 45蓝 46青 47白
背景色:40黑 41红 42绿 43黄 44青 45蓝 46青 47白
4、其他命令
(1)、cat
用法:cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。
-b, --number-nonblank 对非空输出行编号
-E, --show-ends 在每行结束处显示"$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-T, --show-tabs 将跳格字符显示为^I
用途:制作菜单,如下:
例子:
root@Salve four]# cat a.sh #!/bin/bash cat<<x #注意:可以是任意值,而非x,表示从x开始到x结束,原样输出 Please input your name: #heredoc字符串 1)user1 2)user2 3)user3 x [root@Salve four]# sh a.sh Please input your name: 1)user1 2)user2 3)user3
(2)、tee
用法:tee [选项]... [文件]...
将标准输入复制到每个指定文件,并显示到标准输出。(输出一份并保存一份)
-a, --append 内容追加到给定的文件而非覆盖
-i, --ignore-interrupts 忽略中断信号
例子:有利于边输出边保存
[root@Salve four]# sh a.sh | tee menu.txt Please input your name: 1)user1 2)user2 3)user3 [root@Salve four]# ls a.sh demo.sh menu.txt out2.sh output.sh test.sh
(3)、more
分页查看
(4)、head
用法:head [选项]... [文件]...
将每个指定文件的头10 行显示到标准输出。
-c, 显示每个文件的前K 字节内容;
-n, 显示每个文件的前K 行内容;
(5)、tail
用法:tail [选项]... [文件]...
显示每个指定文件的最后10 行到标准输出。
-c, 输出最后K 字节;另外,使用-c +K 从每个文件的第K 字节输出
-f, 即时输出文件变化后追加的数据。
-n, 输出最后几行
(6)、nl
添加行号
[root@Salve four]# cat b.sh #!/bin/bash cat /etc/passwd | head -2|nl nl /etc/passwd | head -2 [root@Salve four]# sh b.sh 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin