第四章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. C语言 · 还款计算

    标题: 还款计算 银行贷款的等额本息还款方法是: 每月还固定的金额,在约定的期数内正好还完(最后一个月可能会有微小的零头出入). 比如说小明在银行贷款1万元.贷款年化利率为5%,贷款期限为24个月. ...

  2. 【规范】前端编码规范——javascript 规范

    全局命名空间污染与 IIFE 总是将代码包裹成一个 IIFE(Immediately-Invoked Function Expression),用以创建独立隔绝的定义域.这一举措可防止全局命名空间被污 ...

  3. 【Java编码规范】《阿里巴巴Java开发手册(正式版)》【转载】

    2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率.大大降低代 ...

  4. class ObjectOutputStream也是过滤流,使节点流直接获得输出对象。

    class ObjectOutputStream也是过滤流,使节点流直接获得输出对象. 最有用的方法:WriteObject(Object b) 用流传输对象称为对象的序列化,但并不使所有的对象都可以 ...

  5. (原)ffmpeg过滤器开发和理解

    最近学习了ffmpeg关于filter过滤器的开发,关于中间的几个相关概念,我们先放在简单介绍一下: AVFilterGraph:几乎完全等同与directShow中的fitlerGraph,代表一串 ...

  6. Windows 安装服务 的两种方式

    第一种   -  安装服务时自定义服务名称:(注意 binpath= 和路径之间的那个空格)sc create 服务名称  binpath= "D:\Service.exe" di ...

  7. kafka性能测试

    参考阿里中间件团队博客的博文 Kafka vs RocketMQ——多Topic对性能稳定性的影响 使用的测试工具为Jmeter

  8. RecyclerView+SwpieRefreshLayout(转载)

    开源库BaseRecyclerViewAdapterHelperhttp://blog.csdn.net/xiangzhihong8/article/details/52138669http://ww ...

  9. python之刷博客访问量

    通过写刷访问量学习正则匹配 说明信息 说明:仅仅是为了熟悉正则表达式以及网页结构,并不赞成刷访问量操作. 1.刷访问量第一版 1.1 确定网页url结构,构造匹配模式串 首先是要确定刷的网页.第一版实 ...

  10. Scala 中方法扩展实践

    前言 这个名字不知道取得是否合适,简单来说要干的事情就是给某个类型添加一些扩展方法,此场景在各种语言中都会用到,比如 C# 语言,如果我们使用一个别人写好的类库,而又想给某个类库添加一些自己封装的方法 ...