计算机网络/计算机科学与应用/系统/运维/开发

Shell 脚本编程 - 脚本文件中输入与输出

1、使用echo命令创建一个脚本文件


echo_menu.sh 脚本

#!/bin/bash
# version:1.10
echo "1.查看网卡信息"
echo "2.查看内存信息"
echo "3.查看磁盘信息"


echo命令支持-e选项,识别\后面转义符号含义,常见转义符如下:

\b 退格键

\f 换行但光标仍停留原来的位置

\n 换行且光标移至首位

\r 光标移至首位且不换行

\t 插入tab键

\\ 打印\


\033或\e后面可以跟终端编码 终端编码用来定义终端字体颜色、背景色、定位光标,0m关闭属性设置

[root@node-a shell]# echo "\t"
\t
[root@node-a shell]# echo -e "hello\tworld"
helloworld
[root@node-a shell]# echo -e "hello\nworld"
hello
world
[root@node-a shell]# echo -e "hello\rworld"
world
[root@node-a shell]# echo -e "\\"
\
[root@node-a shell]# echo -e "\033[1m\033"
[root@node-a shell]# echo -e "\033[1mOK\033"
OK
[root@node-a shell]# echo -e "\033[1mOK"
OK


加下划线后输出ok 

[root@node-a shell]# echo -e "\e[4mOK\e[0m"
OK
[root@node-a shell]# echo -e "\e[30mOK\e[0m"
OK
[root@node-a shell]# echo -e "\e[31mOK\e[0m"
OK
[root@node-a shell]# echo -e "\e[32mOK\e[0m"
OK
[root@node-a shell]# echo -e "\e[33mOK\e[0m"
OK
[root@node-a shell]# echo -e "\e[92mOK\e[0m"
OK


echo_menu2.sh 脚本

#!/bin/bash
#version2.0
clear
echo -e "\033[42m-----------------------------\033[0m"
echo -e "\e[2;10H这里是菜单\t\t#"
echo -e "#\e[32m 1.查看网卡信息\e[0m     #"
echo -e "#\e[33m 2.查看内存信息\e[0m     #"
echo -e "#\e[34m 3.查看磁盘信息\e[0m     #"
echo -e "#\e[35m 4.查看cpu信息\e[0m      #"
echo -e "#\e[36m 5.查看账户信息\e[0m     #"
echo -e "\033[42m----------------------------\033[0m"
echo


2、使用printf命令创建一个脚本

printf [格式] 参数

备注:一般printf命令的参数就是需要输出的内容


格式:

%d 或 %i 十进制整数

%o 八进制整数

%x  十六进制整数

%u  无符号十进制整数

%f  浮点数

%s  字符串

\b  退格键

\f  换行但光标停留在原来位置

\n  换行且光标移至首位

\r  光标移至首位 但不换行

\t  Tab键


[root@node-a shell]# printf "%d" 12
12[root@node-a shell]# printf "%5d" 12
   12[root@node-a shell]#


3、使用read命令读取用户输入信息

read [选项] [变量名]


选项:

-p 显示提示信息

-t 设置读入数据的超时时间

-n  设置读取n个字符后结束,而默认会读取标准输入的一整行内容

-r  支持读取\ 

-s  静默模式,不显示标准输入的内容


[root@node-a shell]# read -p "请输入用户名:" user
请输入用户名:nihao
[root@node-a shell]# echo $user
nihao


努力的意义,不在于一定会让你取得多大的成就,只是让你在平凡的日子里,活得比原来的那个自己更好一点。

评论

^