linux_shell脚本笔记之二

第二章shell脚本(二)

Test文件测试的常见选项有

-d:测试是否为目录(directory)

-e:测试目录或文件是否存在(exist)

-f:测试是否为文件(file)

-r:测试当前用户是否有权限读取(read)

-w:测试当前用户是否有写入权限(write)

-x:测试是否设置有可执行权限(excute)

Test常用表达示有两种

test 表达示                 [表达示]

常用的表达示为后者因为更加贴近编程习惯,如下

[[email protected] ~]# [ -d /media/Server/ ] ;  echo $?    #配合$?查看,返回值为非0说明没有这个目录

1

[[email protected] ~]# ld /media/Server/                   #验证

ld: /media/Server/: No such file: No suchfile or directory

整数值比较包含的选项

-eq:等于(equal)

-ne:不等于(not equal)

-lt:小于(lesser than)

-gt:大于(greater than)

-le:小于等于(lesser or equal)

-ge:大于等于(greater or equal)

整数值比较在脚本中应用较多,如判断已登录用户数量。

[[email protected] shelltest]# stati=`who | wc-l`

[[email protected] shelltest]# [ $stati -le 5 ]&& echo "Active users less than 5 peopl"

Active users less than 5 peopl

字符串比较

=:第一个字符串与第2个字符串相同

!=:第1个字符串与第2个字符串不相同,“!”为取反的意思

-z:检查字符是否为空。

逻辑测试

&&:逻辑与,表示“而且”的意思,当两个条件都成立时才会返回值为0,使用test测试时“&&”可以改为“-a”

||:逻辑或,表示“或者”的意思,只要前后有一个条件成立,整个测试命令的返回值即为0,Test时可改为“-o”

!:逻辑否,表示“不”的意思,只有当指定条件不成立时,整个测试命令的返回值即为0。

用&&做例子:

[[email protected] ~]# [ 6 -ne 4 ] &&echo "yes"

Yes

If 语句

if语句的选择结构分为三种基本类型

  1. if单分支结构,格式如下

if 条件测试操作

then

命令序列

fi

单分支案例

[[email protected] ~]# vim test.sh

#!/bin/bash

#########if单分支案例############

who=`who |wc -l`

if [ $who -le 5 ];then

echo "Active users less than 5people"

fi

[[email protected] ~]# sh test.sh

Active users greater than 5 people

双分支If语句

双分支if语句要求针对“条件成立”和“条件不成立”两种情况执行两种不同的操作

[[email protected] ~]# vim test.sh

#!/bin/bash

#########if多分支案例############

who=`who |wc -l`

if [ $who -le 5 ];then

echo "Active users less than 5people"

else

echo "Active users greater than people"

fi

[[email protected]~]# sh test.sh

Activeusers greater than 5 people

多分支if语句

多分支if语句根据测试结果,执行不同的操作,所以能够嵌套使用,进行多次判断。格式如下:

  1. if单分支结构,格式如下

if 条件测试操作1

then

命令序列1

elif 条件测试操作2

then

命令序列2

Else

命令序列3

fi

多分支案例:

[[email protected] ~]# vim Scores_query.sh

#!/bin/bash

###########分数优、良、差查询脚本###########

read -p "  请输入您的分数(1-100):" score

if [ $score -ge 85 ] && [ $score -le100 ]

then

echo " 您的分数为$score分, 为优秀"

elif [ $score -ge 70 ] && [ $score -le84 ]

then

echo " 您的分数为$score,良"

elif [ $score -ge 60 ] && [ $score-le 69 ]

then

echo " 您的分数为$score分, 为及格"

elif [ $score -le 59 ]

then

echo " 您的分数为$score分, 为不及格"

else

echo " 请输入1-100之间的分数"

fi

[[email protected] ~]# sh Scores_query.sh

请输入您的分数(1-100):100

您的分数为100分, 为优秀

[[email protected] ~]# sh Scores_query.sh

请输入您的分数(1-100):80

您的分数为80分, 为良

时间: 2024-10-11 03:51:26

linux_shell脚本笔记之二的相关文章

Swift学习笔记十二:下标脚本(subscript)

下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0].这就是一个下标脚本.通过索引0来快速取值.在Swift中,我们可以对类(Class).结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法 一.常规定义 class Student{ var scores:Int[] = Array(count:5,repeatedValue:0) subscript(index:Int) -> Int{ get{ return scores[index];

Linux学习笔记--bash脚本编程之二、条件判断

 bash脚本编程之二.条件判断 条件判断: 如果用户不存在 添加用户,给密码并显示添加成功: 否则 显示用户已存在,没有添加 bash中如何实现条件判断? 整数测试 字符测试 文件测试 条件测试的表达式:     [expression]     [[expression]]     test expression 整数比较: -eq:测试两个整数是否相等:比如 $A -eq $B     -ne:测试两个整数是否不等:不等,为真:相等,为假:     -qt:测试一个数是否大于另一个数:大于

简明Python教程笔记(二)----用户交互raw_input()

raw_input() python内建函数 将所有输入看做字符串,返回字符串类型 input()对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float ) input() 本质上还是使用 raw_input() 来实现的,只是调用完 raw_input() 之后再调用 eval() 函数 例子: #!/usr/bin/env pythonthis_year = 2014name = raw_input('please input your name:')age1 =

PHP ----学习笔记(二)

date()函数用于格式化时间或日期 date(format,timestamp) mktime()函数可为指定的日期返回Unix时间戳 mktime(hour,minuite,second,mouth,day,year,is_dst) include和require语句用于在执行流中向其他文件插入有用的代码 include 'filename'; require 'filename'; fopen() 函数用于在PHP中打开文件 fclose() 函数用于关闭打开的文件 feof() 函数检测

ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归.所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然. 但是,如果手写Html标签效率又比较低,可重用度比较低.这时,我们该怎样来提高效率呢?首先,经过上篇我们知道可以通过ViewData传递数据,于是我们可以写出以下的Html代码: <input name="UserName&quo

C#程序员整理的Unity 3D笔记(二十):2D Toolkit之官方教程《Whack a Mole》

在上篇博客中,简单整理了一下Unity Native 2D功能:<C#程序员整理的Unity 3D笔记(十九):Unity 3D的Native 2D>. 本文开始学习2D商用比较广泛的2D Toolkit插件. 2D Toolkit插件在2D中的地位,犹如UI中NGUI对Unity GUI一样:虽然官方原生的2D还不错,但这是最近1年新版本才有的功能,2年前Unity 2D的王道还是得用插件的,故<2D Toolkit>就成了目前商业不错的选择. 在上周刚开始看的时候,就给自己提了

xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置

前言: 昨天学会了安装server,今天试着通过远程终端xshell来安装LAMP,搭配一下开发环境,也有集成环境可以一键安装使用,还是瞎折腾一下,手动一步一步搭建一下这个开发环境. 接上一篇:ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统本文原创博客地址:http://www.cnblogs.com/unofficial官网地址:www.pushself.com) 准备: 在windows系统上首先需要安装xhsell,具体下载地址可以搜一下,安

OllyDbg 使用笔记 (二)

参考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 TraceMe.exe下载地址:http://pan.baidu.com/s/1c0s2twO TraceMe.exe 程序破解 程序见下图,破解目标:使我们能够验证成功. 图片1 由于输入肯定会用到获取对话框文本的API,所以在反汇编面板 按Ctrl+G搜索GetDlgItemTextA,试试看. 图片2 也可以按Ctrl+N 打开程序的导入表.查看程序导入了那些函数,选中GetDlgItemTextA,右键 选择在反汇编窗口中跟随输入

微信订阅号开发笔记(二)

微信开发的流程其实很简单 o(∩_∩)o 哈哈!在微信网站的编辑操作 额,就不说了.虽然有人问过.下面是我的微信开发过程,简单记录下. 成为开发者 材料:1.自己的服务器资源,百度的BAE,新浪的SAE都不错. 2.懂那么点编程语言. 3.注册微信公众号. 上面的都有了之后,就可以自己动手开发了.哇咔咔,好兴奋.有木有. 在登录进去之后,怎么成为开发者?不知道,自己看去. 开始coding吧. 1.验证 if (! empty ( $_GET ['echostr'] ) && ! empt