一.shell脚本理论介绍
1.计算机体系结构包括:硬件与软件
2.软件结构及重要位置:软件又分为系统软件和应用软件负责对硬件进行管理与操作的是系统软件内核部分,用户和操作系统之间的一个命令解释器。
3.用户是无法与硬件或内核打交道:shell使用户能使用硬件或内核:
4.centos7使用的shell脚本类型:
/bin/sh
/bin/bash
/bin/tcsh
/bin/csh
/etc/shells 文件说明了当前系统有那些可用的shell.不同的系统有不同操作方法及特点centos默认使用shell为例讲解,也即是Bash
二.脚本写法格式(基础注意事项及格式):
SHELL编程注意事项
shell命名:shell脚本名称命名一般为英文,大写,小写。后缀以 .sh
不能使用特殊符号,空格
shell编程,首行 #!/bin/bash变量不能以数字,特殊符号开头。可以使用下划线_,但是不能使用破折号----
1.#!/bin/bash
如果进入脚本后开头不按照 “#!/bin/bash”形式写会出现问题
[root@localhost /]# vim Hello.sh
#!/bin/bash #开头格式
echo "hello world" #内容
[root@localhost /]# ll Hello.sh #查看是否Hello.sh是否创建完毕,及权限(权限文章博客有)
-rw-r--r--. 1 root root 32 3月 16 23:01 Hello.sh
[root@localhost /]# chmod +x Hello.sh #赋予执行权限
[root@localhost /]# ll Hello.sh #查看赋予的权限
-rwxr-xr-x. 1 root root 32 3月 16 23:01 Hello.sh
[root@localhost /]# ./Hello.sh #./+创建脚本名及为执行脚本
hello world #执行结果
2.echo的用法及解析:
使用echo命令创建一个脚本文件菜单
功能描述:echo命令主要用来显示字符串信息
格式:echo 选项 字符串
用法示例:
[root@localhost /]# vim echo_menu.sh
[root@localhost /]# bash echo_menu.sh
1.查看网卡信息
2.查看内存信息
3.查看磁盘信息
4.查看CPU信息
5.查看账户信息
[root@localhost /]# vim echo_menu.sh
[root@localhost /]# chmod +x echo_menu.sh
[root@localhost /]# echo "\t"
\t
[root@localhost /]# echo -e "hello\tworld"
hello world
[root@localhost /]# echo -e "helle\bo world"
hello world
echo -e
可以让echo命令 时候识别 \ 后面的转义符号的含义
[root@localhost /]# echo "\t"
\t
[root@localhost /]# echo -e "hello\tworld"
hello world
[root@localhost /]# echo -e "helle\bo world"
hello world
[root@localhost /]# echo -e "helle\bi world"
helli world
[root@localhost /]# echo -e "helle\2bo world"
helle\2bo world
[root@localhost /]# echo -e "helle\boo world"
helloo world
[root@localhost /]# echo -e "helle\b\bo world"
helo world
[root@localhost /]# echo -e "helle\b\b\bo world"
heo world
[root@localhost /]# echo -e "helle\b\b\b\bo world"
ho world
[root@localhost /]# echo -e "hello\fworld"
hello
world
[root@localhost /]# echo -e "hello\rworld"
world
[root@localhost /]# echo -e "\\"
\
[root@localhost /]# echo -e "\033[1mOK"
OK
[root@localhost /]# echo -e "\e[1mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[4mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[3mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[2mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[9mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[8mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[7mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[5mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[30mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[31mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[33mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[32mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[34mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[35mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[36mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[37mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[1;33mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[42mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[44mOK\e[0m"
OK
[root@localhost /]# echo -e "\e[32;44mOK\e[0m"
OK
3.章节小练习
题目:
1.使用clear命令清空屏幕
2.使用echo命令设置终端属性
3.成功打造一个个性化菜单
答案:
[root@localhost /]# vim /echo_menu.sh
#!/bin/bash
#VERSION:2.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
5.printf 格式 参数
示例:
[root@localhost /]# printf "%d" 12
12[root@localhost /]# printf "%d" jerry
bash: printf: jerry: 无效数字
[root@localhost /]# printf "%5d" 12
12[root@localhost /]# printf "%7d" 12
12[root@localhost /]# printf "%-7d" 12
12 [root@localhost /]# printf "%-5d" 12
12 [root@localhost /]#
[root@localhost /]# printf "|%-10d|\n" 12
|12 |
[root@localhost /]# printf "|%10d|\n" 12
| 12|
[root@localhost /]# printf "|%10d|\n" 12p^C
[root@localhost /]# printf "%o\n" 10
12
[root@localhost /]# printf "%x\n" 10
a
[root@localhost /]# print "%d\n" 9223372036854775808
bash: print: 未找到命令...
[root@localhost /]# printf "%d\n" 9223372036854775808
bash: printf: 警告: 9223372036854775808: 数值结果超出范围
9223372036854775807
[root@localhost /]# printf "%u\n" 9223372036854775808
9223372036854775808
[root@localhost /]# printf "%f\n" 3.88
3.880000
[root@localhost /]# printf "%d\n" 3.88
bash: printf: 3.88: 无效数字
3
[root@localhost /]# printf "%.3f\n" 3.88
3.880
[root@localhost /]# printf "%.4f\n" 3.88
3.8800
[root@localhost /]# printf "%.5f\n" 3.88
3.88000
[root@localhost /]# printf "|%8.3f|\n" 3.88
| 3.880|
[root@localhost /]# printf "|%-8.3f|\n" 3.88
|3.880 |
[root@localhost /]# printf "%s\n" "hello"
hello
[root@localhost /]# printf "|%10s|\n" "hello"
| hello|
[root@localhost /]# printf "|%-10s|\n" "hello"
|hello |
[root@localhost /]# printf "%s\t\t%s\n" "hello" "word"
hello word
下一篇xshell下正则表达式,及字符串运用;