shell 编程中使用到得if语句内判断参数
–b 当file存在并且是块文件时返回真
-c 当file存在并且是字符文件时返回真
-d 当pathname存在并且是一个目录时返回真
-e 当pathname指定的文件或目录存在时返回真
-f 当file存在并且是正规文件时返回真
-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
-k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
-p 当file存在并且是命令管道时返回为真
-r 当由pathname指定的文件或目录存在并且可读时返回为真
-s 当file存在文件大小大于0时返回真
-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。
UNIX Shell 里面比较字符写法:
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-le 小于等于
-ge 大于等于
-z 空串
= 两个字符相等
!= 两个字符不等
-n 非空串
-------------------------------------------------------------------------
更为详细的说明:
运算符 描述 示例
文件比较运算符
-e filename 如果 filename 存在,则为真 [ -e /var/log/syslog ]
-d filename 如果 filename 为目录,则为真 [ -d /tmp/mydir ]
-f filename 如果 filename 为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果 filename 为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果 filename 可读,则为真 [ -r /var/log/syslog ]
-w filename 如果 filename 可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果 filename 可执行,则为真 [ -L /usr/bin/grep ]
filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2 如果 filename1 比 filename2 旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string 长度为零,则为真 [ -z $myvar ]
-n string 如果 string 长度非零,则为真 [ -n $myvar ]
string1 = string2 如果 string1 与 string2 相同,则为真 [ $myvar = one two three ]
string1 != string2 如果 string1 与 string2 不同,则为真 [ $myvar != one two three ]
算术比较运算符
num1 -eq num2 等于 [ 3 -eq $mynum ]
num1 -ne num2 不等于 [ 3 -ne $mynum ]
num1 -lt num2 小于 [ 3 -lt $mynum ]
num1 -le num2 小于或等于 [ 3 -le $mynum ]
num1 -gt num2 大于 [ 3 -gt $mynum ]
num1 -ge num2 大于或等于 [ 3 -ge $mynum ]
脚本示例:
#!/bin/bash
# This script prints a message about your weight if you give it your
# weight in kilos and hight in centimeters.
if [ ! $# == 2 ]; then
echo "Usage: $0 weight_in_kilos length_in_centimeters"
exit
fi
weight="$1"
height="$2"
idealweight=$[$height - 110]
if [ $weight -le $idealweight ] ; then
echo "You should eat a bit more fat."
else
echo "You should eat a bit more fruit."
fi
# weight.sh 70 150
You should eat a bit more fruit.
# weight.sh 70 150 33
Usage: ./weight.sh weight_in_kilos length_in_centimeters
举例说:
脚本名称叫test.sh 入参三个: 1 2 3
运行test.sh 1 2 3后
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
$#为3(参数数量)
位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字,
第一个参数代表$1,第二个参数代表$2,以此类推,参数数量的总数存在$#中,上面的例子显示了怎么改变脚本,如果参数少于或者多余2个来打印出一条消息。
执行,并查看情况。
# bash -x tijian.sh 60 170
+ weight=60
+ height=170
+ idealweight=60
+ '[' 60 -le 60 ']'
+ echo 'You should eat a bit more fat.'
You should eat a bit more fat.
其中-x用来检查脚本的执行情况。
相关推荐
Linux Shell 编程 if 语句内判断参数详解 Linux Shell 编程中,if 语句是一种基本的控制结构...Linux Shell 编程中的 if 语句可以与各种参数结合使用,以判断文件、目录、字符串、数字等的状态,从而执行相应的操作。
Linux Shell编程入门实例讲解详解 Linux Shell编程是Linux系统中一种非常灵活的工具,通过shell编程可以自动化大量的任务,especially适合那些易用性、可维护性和便携性比效率更重要的任务。下面是Linux Shell编程...
本文将深入解析Linux shell脚本中的`if`参数及其用法。 一、基本语法 在bash shell中,`if`语句的基本语法如下: ```bash if condition then # 如果条件为真,执行此处的命令 elif condition then # 如果第一个...
本文将深入探讨Linux Shell编写的基础知识,包括基本概念、常用命令、变量与参数、流程控制以及函数的使用。 首先,Shell是一个命令解释器,它接收用户输入的命令并执行。在Linux系统中,常见的Shell有Bash(Bourne...
Linux Shell程序设计是Linux系统管理与自动化任务处理的重要部分,主要使用Bash(Bourne-Again SHell)脚本来编写。在这个“linux shell程序设计实验1”中,我们将探讨如何利用基本的`case`和`if`语句来编写简单的...
**Linux Shell 脚本攻略** 在信息技术领域,Linux Shell脚本是系统管理员和程序员们进行自动化任务处理的重要工具。Shell脚本允许用户通过编写简单的命令序列来执行一系列复杂的操作,极大地提高了工作效率。本攻略...
2. **Shell变量**:Shell允许定义和使用变量来存储数据,如环境变量(如`PATH`,`HOME`),位置参数($1, $2...),特殊变量(如`$#`表示参数个数,`$*`表示所有参数)等。理解变量的声明、赋值及使用规则至关重要。...
Linux Shell编程是Linux系统管理与自动化任务处理的重要组成部分。Shell是一种命令行解释器,它提供了与操作系统交互的接口,允许用户执行系统命令、编写脚本并进行文件操作。本教程将深入探讨Linux Shell编程的经典...
Bash(Bourne Again SHell)是Linux系统中最普遍使用的Shell,本书应该也会重点介绍bash Shell脚本的编写技巧。 Shell脚本的基本构成包括:变量、环境变量、命令执行、流程控制(如if语句、for循环、while循环等)...
Linux Shell编程是Linux系统管理与自动化任务处理的重要组成部分。Shell脚本可以理解为Linux环境下的批处理程序,它允许用户通过编写简单的命令序列来执行复杂的任务。这份"Linux Shell编程教材配套PPT"将帮助你深入...
**Linux Shell脚本攻略概述** Linux Shell脚本是Linux操作系统中一种强大的自动化工具,它允许用户通过编写脚本来执行一系列命令,实现系统管理和任务自动化。本书《Linux Shell脚本攻略》(第2版)深入浅出地介绍...
Linux Shell编程是Linux系统中一个极其重要的组成部分,它充当了用户与操作系统内核之间的接口,允许用户通过命令行与系统进行交互。Shell不仅提供了一系列内置命令,还支持编写脚本,使得复杂的自动化任务变得可能...
Linux Shell 是Linux操作系统中用于与系统交互的一种命令行接口,它是用户与Linux内核之间的桥梁。Shell不仅可以执行单一的命令,还可以通过脚本文件执行一系列命令,极大地提高了工作效率。这篇参考文档将深入探讨...
Linux Shell脚本编程实例是指使用Linux操作系统的Shell来编写脚本程序,实现自动化任务、批处理和system administration等功能。本文将通过实例讲解Linux Shell脚本编程的基本概念、语法和应用。 一、基本概念 1. ...
Linux Shell脚本是Linux系统中用于自动化任务的强大工具,它基于Bash或其他Shell解释器,允许用户编写一系列命令,以实现批处理、任务调度或任何需要自动化的工作流程。本PDF文档"shell-script-entry.pdf"提供了18页...
这份“linuxshell.rar帮助文档”旨在提供关于Linux Shell的基础知识和实用技巧,帮助用户提高在终端中的操作效率。 一、Shell简介 Linux Shell是Linux系统中的一个核心组件,常见的有Bash(Bourne Again SHell)、...
Shell编程的主要特点包括定义变量和参数、使用丰富的程序控制结构、流程控制和条件判断等。下面将详细介绍Shell编程的相关知识点。 首先,Shell编程语言的基本语法是必须掌握的。Shell编程的基础是命令的执行,它将...
### Linux Shell编程知识点详解 #### 一、Shell编程概述 **Shell** 在 Unix/Linux 系统中扮演着极其重要的角色,既是用户与操作系统交互的主要接口,也是一种强大的编程语言。通过 Shell 编程,用户不仅可以自动化...
Linux Shell 是Linux操作系统中不可或缺的一部分,它是一种命令行解释器,允许用户与系统进行交互,执行各种任务。本文将深入探讨Linux Shell的各个方面,包括基本概念、常用命令、脚本编程以及源码分析。 首先,...
### Linux Shell脚本攻略知识点详解 #### 一、Shell脚本基础 1. **Shell简介**: - **定义**:Shell是用户与Linux操作系统之间的交互界面。 - **功能**:执行命令、处理文件、运行程序等。 - **种类**:Bash、...