<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 ——用来检查x与y是否相等
x!=y ——用来检查x和y是否不等
-n x ——用来检查字符串x的长度是否大于0,x不是空字符串时为真
-z x ——用来检查字符串x长度是否为0,x是空字符串时为真
如果两个字符串长度不同时,系统会先为较短的字符串后添加空格使得两者长度相同,而后完成比较。
(2)数字比较
x -eq y ——检查是否x和y相等
x -ne y ——检查是否x和y不等
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 ——文件file的GID标志被设置
-u file ——文件file的UID标志被设置
-O file ——文件file是属于当前用户的
-G file ——文件file的组ID和当前用户相同
file1 -nt file2 ——文件file1比file2更新
file1 -ot file2 ——文件file1比file2更老
(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是当前目录下的一个子目录。该文件判断file1和dir1是否可执行。需要注意的是if和左中括号[中间有空格,[]里的表达式被空格包围,即[
expression ],否则会有语法错误。
分享到:
相关推荐
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善...
非常不错的bash/shell教程,适合所有级别的用户! chm版,附带丰富的附录!
NULL 博文链接:https://lindows.iteye.com/blog/252627
包括概述、linux文件系统、正则表达式、sed命令和awk编程、文件的排序、合并和分割、变量和引用、操作符、循环与结构化命令、变量的该机用法、I/O重定向、linux/unix shell类型与区别、子shell进程处理、函数、别名...
linux中shell的表达式比较,就是bash和tcsh表达式的比较
bash shell高级编程
Shell脚本初步入门 / 62.1 什么是Shell / 62.2 什么是Shell脚本 / 72.3 Shell脚本在Linux运维工作中的地位 / 82.4 脚本语言的种类 / 92.5 常用操作系统默认的Shell / 112.6 Shell脚本的建立和执行 / 12第3章 ...
实验四 Linux Shell编程入门 通过实验掌握下列知识: 1、了解Linux下Bash Shell脚本编写的基本要求; 2、了解Bash Shell几种常用的控制结构; 3、能按要求编写简单的Bash Shell脚本;
第1章 Shell脚本编程概述 1 ...第12章 子Shell与进程处理 288 第13章 函数 314 第14章 别名、列表及数组 335 第15章 一些混杂的主题 359 第16章 Shell脚本调试技术 403 第17章 bash Shell编程范例 420
Shells编程快速入门(四)之Bash Shell.pdfShells编程快速入门(四)之Bash Shell.pdfShells编程快速入门(四)之Bash Shell.pdfShells编程快速入门(四)之Bash Shell.pdfShells编程快速入门(四)之Bash Shell.pdfShells编程...
LinuxBashShell命令,shell编程进出入门,供初学者使用,bash命令的简介
Bash shell编程参考手册,Linux编程必备。
本书介绍shell脚本编程,主要针对Bourne shell与POSIX兼容的shell,但也广泛涵盖了新近的一些发展情况,尤其是bash shell。bash shell几乎总是会包含在GNU/Linux操作系统中,也包含在了大多数商业Unix中。另外,...
BASH脚本编程入门 很好的入门书籍 30分钟搞定BASH脚本编程 一个最简单的脚本 这篇指南将通过一些例子来帮助大家学习功能强大的shell脚本编程. 在这一节中我将学习一些简单的脚本,它将有利于你深入学习一些知识。
Shell编程的入门,包括Bash变量命名,运算符,环境变量,正则表达式等等;在学习linux基本命令之后,再学习shell编程。该文档含有shell编程需要的技术和例子,欢迎下载。
毫无疑问, UNIX/Linux最重要的软件之一就是shell, 目前最流行的shell被称为Bash(Bourne Again Shell), 几乎所有的 Linux和绝大部分的 UNIX 都可以使用 Bash。 作为系统与用户之间的交互接口, shell 几乎是你在 ...
入门Linux-Bash-Shell,PDF文档入门教程。入门Linux-Bash-Shell,PDF文档入门教程。
shell 编程介绍 及 300多样例