<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编程中,入门的基础知识主要包括以下几个方面: 1. **建立和运行Shell程序**: - Shell程序是一个包含了多行Shell或Linux命令的文本文件。你可以使用像VI这样的文本编辑器来编写它们。 - 执行Shell程序有...
### 给Shell初学者的入门知识详解 #### 一、Shell程序基础 ##### 1.1 Shell程序概念 - **定义**: Shell程序本质上是一个包含了多条Shell或Linux命令的文件。 - **创建**: 使用文本编辑器(如VI)来编写Shell程序...
在Linux环境中,可以安装多种Shell,如sh、csh、tcsh、zsh、ksh、pdksh以及bash等,其中bash(Bourne-Again SHell)是默认的标准Shell,可以通过`/bin/bash --version`查看其版本。 **一、Shell基础知识** 1. **...
在本文中,我们将深入探讨如何入门Shell编程,包括创建和运行Shell程序、理解Shell中的变量、掌握引号的使用方法以及了解test命令。 1. **建立和运行Shell程序** - Shell程序是由一系列的Shell命令组成的文本文件...
Linux编程中的Shell入门是一个重要的主题,特别是对于那些在软件开发领域工作的人来说。Shell是Linux和Unix系统中的一个命令行接口,它允许用户通过命令行与操作系统交互。在本文档中,我们将深入探讨如何创建和运行...
《深入解析Linux Shell编程:构建、执行与技巧详解》 在深入探讨Linux Shell编程之前,我们首先需要理解Shell编程的基本概念及其重要性。Shell编程,尤其是对于Linux操作系统而言,是一种强大的自动化工具,允许...
**PDKSH(Public Domain Korn Shell)** 是一个基于原始Korn Shell(ksh)的免费版本,它被广泛用于Unix和Linux系统中作为命令解释器和脚本编程环境。PDKSH的名字来源于它的开源性质,即“公共领域Korn Shell”。这...
Shell 是一种强大的命令行解释器,它允许用户通过文本界面与操作系统交互,执行一系列命令和自动化任务。在Linux和Unix系统中,Shell通常被用作用户界面,提供了一个灵活的环境来编写脚本和程序。本文将详细介绍两个...
1. **语法兼容性**:PDKSH设计的目标之一就是尽可能地兼容原始的Korn Shell,使得用户可以无缝地在两个环境中切换,编写与ksh93兼容的脚本。 2. **命令历史**:PDKSH支持命令历史记录,用户可以通过上箭头键访问和...
`test`命令在bash和pdksh中用于执行条件测试,它检查条件表达式并返回真或假的结果,常用于条件语句和循环语句中。例如,`[ -f filename ]`会检查`filename`是否存在且是一个普通文件,如果满足条件,返回真(0),...
例如,Shell脚本中常见的变量赋值语句为 `abc=9`,在BASH和pdksh中,我们可以使用 `set abc=9` 来进行变量设置,在tcsh/csh中则是 `set name=abc`。在脚本中引用变量时,需要在变量名前加上美元符号 `$`,例如 `$abc...
此外,Shell编程还包括了位置参数、内部变量、特殊字符、表达式比较、循环语句、条件语句、杂项语句和函数等复杂结构。位置参数允许传递命令行参数,内部变量如$0表示脚本名称,$#表示参数数量。特殊字符如`*`和`?`...
Linux系统中最常用的交互式Shell是Bash(Bourne Again Shell)。Shell在Linux系统架构中处于核心地位,如图3-1所示。 **1.1.2 Shell的功能** Shell最重要的功能之一就是命令解释。当用户输入命令时,Shell会解析...
16. **shell环境**:bash、ksh、csh和pdksh是常见的Linux shell。 17. **`init`配置文件**:`/etc/inittab`是控制init启动过程的主要配置文件。 18. **启动级别**:级别5通常对应X Window图形界面。 19. **环境...
第四部分为Linux编程;第五部分为附录。本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言...
以上总结了Linux实训中的关键知识点,包括Linux操作系统架构、文件系统结构、基本概念以及常用的Linux命令,这些知识对于嵌入式培训尤其是Linux驱动开发领域尤为重要,能够帮助学习者深入了解Linux系统的工作机制,...
本书详细讲解了用Linux的图形配置工具配置Caldera OpenLinux,通过一个ppp与网络连接、使用K桌面环境、用StarOffice提高在家办公的效率、网络浏览、发传真、接收email及使用GIMP等图形工具。 24学时每次1小时的课程...