四、Shell输入、输出功能和字符颜色设置

一、Shell输入功能

1、键盘输入
 
方式一:
[root@Salve four]# cat test.sh
#!/bin/bash
 
#-e 参数可以解析语句中的转义字符
echo -e "my name is user1
 my name is user2"
#-n 参数可以让echo命令结尾不换行
echo -n "my name is user1
 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
 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
Very Good!"
echo -e "33[32;47m [test]33[0m"

[root@Salve four]#./output.sh HelloWorld! HelloWorld VeryGood! [test]
3、字幕颜色变化
(1)、例子:
 
[root@Salve four]# cat out2.sh
#!/bin/bash
 
echo -e "httpd process 33[32;40m [OK] 33[0m "
[root@Salve four]# sh out2.sh
httpd process [OK]
(2)、颜色语法:
    33[前景色;背景色m
    33[0m                   #0m代表恢复到系统默认的颜色
 
(3)、字符界面前景颜色与背景颜色:
    前景色:30黑 31红 32绿 33黄 34蓝 35紫 36青 37白
    背景色: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
 
 
原文地址:https://www.cnblogs.com/chinas/p/5557753.html