Skip to content
KARINKARIN
博客主页
项目总览
知识要点
捣鼓折腾
Git笔记
Excel修炼秘籍
github icon
  • 博客主页
    • 项目总览
          • Shell脚本笔记
            • Shell脚本介绍
              • Shell语法
                • 如何书写一个 shell 脚本
                  • shell 脚本命名:
                    • shell脚本格式:
                    • 如何运行一个 shell 脚本
                      • shell 中的特殊符号
                        • shell 中的管道运用
                          • shell 重定向
                            • shell 数学运算
                            • 退出脚本
                            • Shell格式化输出
                              • Shell格式化输入
                                • Shell变量
                                  • Shell数组
                                    • Shell运算
                                      • Shell流程控制---if判断语句
                                        • Shell流程控制---for循环语句
                                          • Shell流程控制---while循环语句
                                            • Shell流程控制---until循环语句
                                              • Shell流程控制---case分支语句
                                                • Shell函数
                                                  • Shell正则表达式
                                                    • Shell对文本的搜索---grep命令
                                                      • Shell对文件的操作---sed命令
                                                        • Shell对输出流的处理---awk命令
                                                          • Shell监控脚本
                                                            • Shell脚本---lamp环境安装

                                                          Shell语法

                                                          author iconkarincalendar icon2021年4月9日category icon
                                                          • 教程
                                                          tag icon
                                                          • shell
                                                          timer icon大约 4 分钟

                                                          此页内容
                                                          • 如何书写一个 shell 脚本
                                                            • shell 脚本命名:
                                                            • shell脚本格式:
                                                          • 如何运行一个 shell 脚本
                                                            • shell 中的特殊符号
                                                            • shell 中的管道运用
                                                            • shell 重定向
                                                            • shell 数学运算
                                                          • 退出脚本

                                                          shell 脚本就是将完成一个任务的所有命令按照执行的先后顺序,自上而下写入到一个文本文件中,然后给予执行权限。

                                                          # 如何书写一个 shell 脚本

                                                          # shell 脚本命名:

                                                          名字要有意义,最好不要用 a、b、c、d、1、2、3、4 这种方式命名;虽然 linux 系统中,文件没有扩展名的概念,依然建议用 .sh 结尾;名字不要太长,最好能在 30 个字节以内解决。例如:check_memory.sh

                                                          # shell脚本格式:

                                                          shell 脚本开头必须指定脚本运行环境,以 #! 这个特殊符号组合来组成。例如:#!/bin/bash 来指定该脚本是运行解析由 /bin/bash 来完成的; shell 中的注释使用 # 符号

                                                          #shell脚本中,最好加入脚本说明字段
                                                          #!/bin/bash
                                                          #Author: Admin
                                                          #Created Time: 2021/02/02 16:23
                                                          #Release: 1.0
                                                          #Script Description: first shell study script
                                                          
                                                          1
                                                          2
                                                          3
                                                          4
                                                          5
                                                          6

                                                          # 如何运行一个 shell 脚本

                                                          脚本运行需要执行权限,当我们给一个文件赋予执行权限后,该脚本就可以运行。

                                                          [root@localhost ~]# chmod u+x filename		#赋予执行权限
                                                          [root@localhost ~]# ./filename				#执行脚本333
                                                          
                                                          1
                                                          2

                                                          如果不希望赋予脚本执行权限,那么可以使用 bash 命令来运行未给予执行权限的脚本

                                                          [root@localhost ~]# bash filename			#bash执行脚本
                                                          [root@localhost ~]# bash -x filename		#-x调试,把每条命令执行情况打印出来
                                                          
                                                          1
                                                          2

                                                          # shell 中的特殊符号

                                                          有基础的同学不要和正则表达式中的符号含义搞混淆了。

                                                          符号说明
                                                          ~家目录。# cd ~ 代表进入用户家目录
                                                          !执行历史命令。 !! 执行上一条命令
                                                          $变量中取内容符
                                                          + - * / %对应数学运算 加 减 乘 除 取余数
                                                          &后台执行
                                                          *通配符,匹配所有
                                                          ?通配符,匹配除回车以外的一个字符
                                                          ;分号可以在shell中一行执行多个命令,命令之间用分号分割
                                                          |管道符,上一个命令的输出作为下一个命令的输入
                                                          ``反引号,命令中优先执行反引号内的命令
                                                          ' '单引号,脚本中的字符串可以用单引号引起来,单引号不能解释变量
                                                          " "双引号,脚本中的字符串可以用双引号引起来,双引号可以解释变量

                                                          # shell 中的管道运用

                                                          • 管道符 |

                                                          管道符在 shell 中使用是最多的,很多组合命令都需要通过组合命令来完成输出。

                                                          管道符其实就是下一个命令对上一个命令的输出作处理。

                                                          # shell 重定向

                                                          重定向符号说明
                                                          >重定向输入,覆盖原数据。
                                                          >>重定向追加输入,在原数据的末尾添加。
                                                          <重定向输出。例如:wc -l < /etc/passwd
                                                          <<重定向追加输出。例如:fdisk /dev/sdb << EOF...................EOF

                                                          # shell 数学运算

                                                          • expr 命令:

                                                          只能做整数运算,格式比较古板,注意命令,数字和运算符之间有空格

                                                          [root@linux ~]# expr 1 + 1
                                                          2
                                                          [root@linux ~]# expr 5 - 2
                                                          3
                                                          [root@linux ~]# expr 3 \* 7			#注意*出现应该转义,否则认为是通配符
                                                          21
                                                          [root@linux ~]# expr 5 / 2
                                                          2
                                                          [root@linux ~]# expr 10 % 3
                                                          1
                                                          
                                                          1
                                                          2
                                                          3
                                                          4
                                                          5
                                                          6
                                                          7
                                                          8
                                                          9
                                                          10
                                                          • bc 命令:

                                                          使用 bc 计算器处理浮点运算,scale=2 代表小数点保留两位,quit 退出

                                                          [root@linux ~]# echo "scale=2;3+100" | bc
                                                          103
                                                          [root@linux ~]# echo "scale=2;100-3" | bc
                                                          97
                                                          [root@linux ~]# echo "scale=2;100/3" | bc
                                                          33.33
                                                          [root@linux ~]#echo "scale=2;100*3" | bc
                                                          300
                                                          
                                                          1
                                                          2
                                                          3
                                                          4
                                                          5
                                                          6
                                                          7
                                                          8
                                                          • (( ))运算:

                                                          双小圆括号运算,在 shell 中 (( )) 也可以用来作数学运算

                                                          [root@linux ~]#echo $((100+3))
                                                          103
                                                          [root@linux ~]#echo $((100-3))
                                                          97
                                                          [root@linux ~]#echo $((100*3))
                                                          300
                                                          [root@linux ~]#echo $((100/3))
                                                          33
                                                          [root@linux ~]#echo $((100%3))
                                                          1
                                                          [root@linux ~]#echo $((10**3))				#开方运算
                                                          1000
                                                          
                                                          1
                                                          2
                                                          3
                                                          4
                                                          5
                                                          6
                                                          7
                                                          8
                                                          9
                                                          10
                                                          11
                                                          12

                                                          # 退出脚本

                                                          exit NUM 退出脚本,释放系统资源,NUM 代表一个整数,代表返回值。

                                                          • exit 0:正常运行程序并退出程序;
                                                          • exit 1:非正常运行导致退出程序;

                                                          exit 0 可以告知你的程序的使用者,你的程序是正常结束的。 如果 exit 非0值,那么你的程序的使用者通常会认为你的程序产生了一个错误。

                                                          在shell中调用完你的程序之后,用 echo $? 命令就可以看到你的程序的 exit 值。在 shell 脚本中,通常会根据上一个命令的 $? 值来进行一些流程控制。0 代表程序正确的执行。

                                                          edit icon编辑此页open in new window
                                                          上一页
                                                          Shell脚本介绍
                                                          下一页
                                                          Shell格式化输出
                                                          MIT Licensed
                                                          Copyright © 2022 karin