《linux就该这么学》第五节课,shell脚本的各种语句!
第四章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脚本的各种语句!的更多相关文章
- 《linux就该这么学》第九节课:第七章,RAID阵列和LVM逻辑卷技术
笔记 (借鉴请改动) 7.1.RAID(独立冗余磁盘阵列) 常见的几种RAID:RAID0,RAID1,RAID5,RAID10 raid0 实现写入速度但安全性略低. raid1 实现了速度和 ...
- 《linux就该这么学》第二节课,安装红帽7,基础命令至2.3小节的笔记
笔记 实验环境: 1.安装注意事项:使用VM12版本 安装需要稍后安装系统. 自定义硬件DVD选择镜像位置. 自定义网卡仅主机. 自定义内存:大于等于4G,给予虚拟机2G,大于2G小于 ...
- 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网络知识 第十五节课 ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- 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 ...
- 风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞
风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞 0x03 任意文件下载漏洞 一些网站由于业务需求,往往需要提供文件下载功能,但若对用户下载的文件不做限制,则恶意用户就能够下载任意敏感文件, ...
- centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课
centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节 ...
- 风炫安全WEB安全学习第二十五节课 利用XSS键盘记录
风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用a ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本2
Linux 性能监控之CPU&内存&I/O监控Shell脚本2 by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1 by:授客 QQ:1033553122 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...
随机推荐
- SudaMod-81.0 / crDroidAndroid-8.1(android-8.1.0_r20)红米3 2018年5月3日更新
一.写在前面 我只是个人爱好,本ROM未集成任何第三方推广软件,我只是喜欢把好的资源分享出来,若可以,我们一起学习,一起进步. 请不要问我怎么刷机! 请不要问我玩游戏卡不卡(有钱你就换好点的手机)! ...
- DR、BDR、SBR、ASBR等名词的解释和原理
DR是指定路由器的意思是为了解决LSA在一个area里浪费很大的带宽而设计的 BDR是备份指定路由器,就是DR的一个备用.DR和BDR只在广播网和NBMA网络中有,而P2P和P2MP中是没有的. AB ...
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库——操作系统配置,安装必备软件
注意未经说明,所有本文中所有操作都默认需要作为root用户进行操作. 一.安装zmodem,用于远程上传下载文件,安装gedit,方便重定向到远程windows上编辑文件(通过xlanuch) [ro ...
- 【Oracle】PL/SQL 显式游标、隐式游标、动态游标
在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...
- Visual Studio 2015编译wxWidgets
宫指导说,换帅如换刀 程序员的编译器一换,基本套路必须都重练几次 使用wxWidgets并不难,但不能使用现有的库和工程配置文件,细节就必须理清楚 获取wxWidgets 官方的下载页面,下7z或zi ...
- Vue Cli 3.x项目如何部署到IIS子站点下
Vue Router在IIS下的部署参考:https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB% ...
- JavaSE 可变参数的方法重载
/** * 可变参数的方法重载 */ class A { public void test(int a, int b) { System.out.println(a+", "+b) ...
- I - 昂贵的聘礼
来源poj1062 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求 ...
- 在项目目录初始化composer
1.创建一个仓库 2.进入项目目录,然后输入composer init命令开始为该项目初始化composer 3.初始化完成
- python3 中 Event.wait 多线程等待
event.wait(time) 等待 time 时间后,执行下一步.或者在调用 event.set() 后立即执行下一步. event.clear() 清除信号 event.set() 设置信号 ...