一、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]
(2)、颜色语法:
\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字符串
)user1
)user2
)user3
x
[root@Salve four]# sh a.sh
Please input your name:
)user1
)user2
)user3
(2)、tee
用法:tee [选项]... [文件]...
将标准输入复制到每个指定文件,并显示到标准输出。(输出一份并保存一份)
-a, --append 内容追加到给定的文件而非覆盖
-i, --ignore-interrupts 忽略中断信号
例子:有利于边输出边保存
[root@Salve four]# sh a.sh | tee menu.txt
Please input your name:
)user1
)user2
)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 -|nl
nl /etc/passwd | head - [root@Salve four]# sh b.sh
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin