第四章shell语句

(据课本和虚拟机实验排版,借鉴请改动)

             

4.2:shell脚本

  脚本包括:脚本声明,脚本注释,脚本内容和命令

例:#!/bin/bash             //脚本声明

#  for  example          //脚本注释

pwd                           //脚本命令

ls  -al                       //脚本命令

在脚本开头    #!/bin/bash     表使用bash解释器

建议脚本以   .sh   结尾区分于其他文件,脚本会从上到下依次执行,直至完毕。

例:bash   linuxprobe.sh        //执行linuxprobe.sh脚本

参数:脚本可以接接收用户输入的参数,并判断参数来进行相应的动作

$0   // 代表脚本本身                                     $1 ,$2 ....        //代表第一个参数,2则代表第二个,以此类推

$#   // 接收参数的总个数                                     $*               //对应参数的值

$?  显示上一次命令执行是否成功的返回值    0为成功 非零值则为失败

例图:

条件测试语句:  [  条件表达式  ] 两边须有空格

  -d  //是否为目录                                          -e  //是否存在

-f   //是否为一般文件                                   -r  //是否可读

  -w  //是否可写                                             -x  //是否可执行

例:[  -d  /etc/fstab  ]           //是否为目录

echo  $?                      //检查上一条命令是否成功,会输出1,因为不是目录

  &&  “与”,命令A && 命令B   命令A执行成功才会执行B

前面的命令执行成功后才会执行后面的语句

  ||  “或”       命令A || 命令B     命令A执行失败才会执行B

前面的命令执行失败后才会执行后面的语句

! 叹号表示“非”,取结果的相反值

例:[  -e /dev/cdrom  ] && echo exit

[ $user  =  root  ]  &&  echo  root || echo  user    //[空格$user空格=空格root空格]

整数比较运算符(正常大于小于等于会与系统中的符号有冲突,所以用以下专用操作符)

-eq    //是否等于                                           -ne    //是否不等于

-gt     // 是否大于                                            -lt    //是否小于

  -le    //是否等于或小于                                 -ge    // 是否大于或等于

例:[  `free -m|grep Mem:|awk '{print $4}'` -lt  1024  ]&&echo "内存不足" || echo  “内存充足”  //判断内存

  字符运算符

   //比较字符串是否相同                          !=    // 比较字符串是否不同

  -z    //判断字符串是否为空

4.3:流程控制语句

 readonly     //将变量定义为只读变量,只读变量不能被改变

  read   将用户输入的值赋值给变量    read  【参数】  变量名

   -p    //参数p可以加入提示语句

  if条件语句

单分支、双分支、多分枝结构:

  for条件循环语句

  while  条件循环语句

(据课本和虚拟机实验排版,借鉴请改动)

shell脚本复习
第四章节收尾预习,预习第五章节

《linux就该这么学》第五节课,shell脚本的各种语句!的更多相关文章

  1. 《linux就该这么学》第九节课:第七章,RAID阵列和LVM逻辑卷技术

    笔记 (借鉴请改动) 7.1.RAID(独立冗余磁盘阵列) 常见的几种RAID:RAID0,RAID1,RAID5,RAID10   raid0  实现写入速度但安全性略低. raid1 实现了速度和 ...

  2. 《linux就该这么学》第二节课,安装红帽7,基础命令至2.3小节的笔记

    笔记 实验环境: 1.安装注意事项:使用VM12版本   安装需要稍后安装系统.   自定义硬件DVD选择镜像位置.   自定义网卡仅主机.   自定义内存:大于等于4G,给予虚拟机2G,大于2G小于 ...

  3. centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课

    centos  Linux系统日常管理2  tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...

  4. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  5. centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln 内部命令和外部命令 第五节课

    centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln   ...

  6. 风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞

    风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞 0x03 任意文件下载漏洞 一些网站由于业务需求,往往需要提供文件下载功能,但若对用户下载的文件不做限制,则恶意用户就能够下载任意敏感文件, ...

  7. centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课

    centos  lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress  安装phpmyadmin  定时备份mysql两种方法  第二十五节 ...

  8. 风炫安全WEB安全学习第二十五节课 利用XSS键盘记录

    风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用a ...

  9. Linux 性能监控之CPU&内存&I/O监控Shell脚本2

    Linux 性能监控之CPU&内存&I/O监控Shell脚本2   by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...

  10. Linux 性能监控之CPU&内存&I/O监控Shell脚本1

    Linux 性能监控之CPU&内存&I/O监控Shell脚本1   by:授客 QQ:1033553122   #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...

随机推荐

  1. .net Core 生产环境报错 MIME

    because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled. 主要没 ...

  2. Guava Cache用法介绍<转>

    Guava Cache是在内存中缓存数据,相比较于数据库或redis存储,访问内存中的数据会更加高效.Guava官网介绍,下面的这几种情况可以考虑使用Guava Cache: 愿意消耗一些内存空间来提 ...

  3. Direct3D 11 Tutorial 5: 3D Transformation_Direct3D 11 教程5:3D转型

    概述 在上一个教程中,我们从模型空间到屏幕渲染了一个立方体. 在本教程中,我们将扩展转换的概念并演示可以通过这些转换实现的简单动画. 本教程的结果将是围绕另一个轨道运行的对象. 展示转换以及如何将它们 ...

  4. 关于FastJSON

    https://github.com/alibaba/fastjson/wiki/Quick-Start-CN FastJSON常见问题 FastJson和get方法的问题 使用SimplePrope ...

  5. error connecting: Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置

    [参考]Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置 [参考][数据库-MySql] MySqlConnection error connec ...

  6. ThinkPHP 文件上传到阿里云OSS上(干货)

    参考:http://www.thinkphp.cn/extend/789.html 1.前往阿里云github下载SDK包:https://github.com/aliyun/aliyun-oss-p ...

  7. websocket采用tomcat方式,IOC类对象无法注入的解决方案

    前言 我采用的spring框架做的,主要用于IOC AOP ,spring之前采用的2.0版本.(2.0版本出错!下面有解释): 要实现websocket 实现后台主动与JSP发送数据. 具体操作 在 ...

  8. zookeeper使用

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项目,其 ...

  9. MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report e

    早上来到公司,线上的项目报错: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionExcepti ...

  10. 从0移植uboot (四) _点亮调试LED

    这一节主要讨论1个问题:点灯.点灯是实际开发中,特别是裸板开发中常见的调试手段,相当于主机开发中漫天飞舞的printf/printk.为了追踪程序的现场执行情况,很多时候我们都使用点一个灯的方法来进行 ...