`
duoerbasilu
  • 浏览: 1482601 次
文章分类
社区版块
存档分类
最新评论

SHELL 编程入门与提高(二)bash/pdksh中的表达式比较

 
阅读更多
<style type="text/css"> <!-- @page {margin:0.79in} p {margin-bottom:0.08in} --> </style>

pdksh/bash中提供了test命令用来比较两个表达式(字符串/数字/文件)等。test命令的语法如下:

test expression

或者[ expression ]

注意中括号中的expression的前后是空格,忽略这一点将会引起语法错误。

test命令支持的比较有字符串比较,数字比较,文件运算符和逻辑运算符。下面我们就来学习这些比较的用法。

1)字符串比较

比较字符串的运算符主要有:

x=y ——用来检查xy是否相等

x!=y ——用来检查xy是否不等

-n x ——用来检查字符串x的长度是否大于0x不是空字符串时为真

-z x ——用来检查字符串x长度是否为0x是空字符串时为真

如果两个字符串长度不同时,系统会先为较短的字符串后添加空格使得两者长度相同,而后完成比较。

2)数字比较

x -eq y ——检查是否xy相等

x -ne y ——检查是否xy不等

x -gt y ——检查是否x大于y

x -lt y ——检查是否x小于y

x -ge y ——检查是否x大于等于y

x -le y ——检查是否x小于等于y

3)针对文件的运算符

-e file ——文件file已经存在

-f file ——文件file是普通文件

-s file ——文件file大小不为0

-d file ——文件file是一个目录

-r file ——文件file对当前用户可以读取

-w file ——文件file对当前用户可以写入

-x file ——文件file对当前用户可以执行

-g file ——文件fileGID标志被设置

-u file ——文件fileUID标志被设置

-O file ——文件file是属于当前用户的

-G file ——文件file的组ID和当前用户相同

file1 -nt file2 ——文件file1file2更新

file1 -ot file2 ——文件file1file2更老

4)逻辑运算符

! 逻辑取非运算符,对一个逻辑表达式操作

-a 逻辑与运算符,对两个逻辑表达式操作

-o 逻辑或运算符,对两个逻辑表达式操作

下面举个简单的例子:

#!/bin/bash

if [ -x file1 -a -x dir1 ]; then

echo file1 and dir1 are executable

else

echo at least one of file1 or dir1 are not executable

fi

其中file1是当前目录下的一个文件,dir1是当前目录下的一个子目录。该文件判断file1dir1是否可执行。需要注意的是if和左中括号[中间有空格,[]里的表达式被空格包围,即[ expression ],否则会有语法错误。


分享到:
评论

相关推荐

    Linux Shell 脚本编程入门教程

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善...

    bash/shell教程chm版

    非常不错的bash/shell教程,适合所有级别的用户! chm版,附带丰富的附录!

    OS + Linux Shell bash / sh / ksh / csh / tcsh / adb shell

    NULL 博文链接:https://lindows.iteye.com/blog/252627

    shell编程 从入门到精通百度网盘下载地址.

    包括概述、linux文件系统、正则表达式、sed命令和awk编程、文件的排序、合并和分割、变量和引用、操作符、循环与结构化命令、变量的该机用法、I/O重定向、linux/unix shell类型与区别、子shell进程处理、函数、别名...

    linux中shell的表达式比较

    linux中shell的表达式比较,就是bash和tcsh表达式的比较

    bash shell高级编程

    bash shell高级编程

    跟老男孩学Linux运维:Shell编程实战

    Shell脚本初步入门 / 62.1 什么是Shell / 62.2 什么是Shell脚本 / 72.3 Shell脚本在Linux运维工作中的地位 / 82.4 脚本语言的种类 / 92.5 常用操作系统默认的Shell / 112.6 Shell脚本的建立和执行 / 12第3章 ...

    实验四 Linux Shell编程入门

    实验四 Linux Shell编程入门 通过实验掌握下列知识: 1、了解Linux下Bash Shell脚本编写的基本要求; 2、了解Bash Shell几种常用的控制结构; 3、能按要求编写简单的Bash Shell脚本;

    Linux Shell编程从初学到精通 第2版

    第1章 Shell脚本编程概述 1 ...第12章 子Shell与进程处理 288 第13章 函数 314 第14章 别名、列表及数组 335 第15章 一些混杂的主题 359 第16章 Shell脚本调试技术 403 第17章 bash Shell编程范例 420

    Shells编程快速入门(四)之Bash Shell.pdf

    Shells编程快速入门(四)之Bash Shell.pdfShells编程快速入门(四)之Bash Shell.pdfShells编程快速入门(四)之Bash Shell.pdfShells编程快速入门(四)之Bash Shell.pdfShells编程快速入门(四)之Bash Shell.pdfShells编程...

    shell编程,bash基础命令

    LinuxBashShell命令,shell编程进出入门,供初学者使用,bash命令的简介

    Bash shell编程参考手册

    Bash shell编程参考手册,Linux编程必备。

    Shell脚本编程诀窍——适用于Linux、Bash等

    本书介绍shell脚本编程,主要针对Bourne shell与POSIX兼容的shell,但也广泛涵盖了新近的一些发展情况,尤其是bash shell。bash shell几乎总是会包含在GNU/Linux操作系统中,也包含在了大多数商业Unix中。另外,...

    BASH脚本编程入门

    BASH脚本编程入门 很好的入门书籍 30分钟搞定BASH脚本编程 一个最简单的脚本 这篇指南将通过一些例子来帮助大家学习功能强大的shell脚本编程. 在这一节中我将学习一些简单的脚本,它将有利于你深入学习一些知识。

    Shell编程基础

    Shell编程的入门,包括Bash变量命名,运算符,环境变量,正则表达式等等;在学习linux基本命令之后,再学习shell编程。该文档含有shell编程需要的技术和例子,欢迎下载。

    bash shell编程

    毫无疑问, UNIX/Linux最重要的软件之一就是shell, 目前最流行的shell被称为Bash(Bourne Again Shell), 几乎所有的 Linux和绝大部分的 UNIX 都可以使用 Bash。 作为系统与用户之间的交互接口, shell 几乎是你在 ...

    Linux-Bash-Shell快速入门

    入门Linux-Bash-Shell,PDF文档入门教程。入门Linux-Bash-Shell,PDF文档入门教程。

    shell demo及编程pdf

    shell 编程介绍 及 300多样例

Global site tag (gtag.js) - Google Analytics