`
WaltersRen
  • 浏览: 3657 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

linux shell if_then

阅读更多
比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。

注意:这里的空格很重要。要确保方括号的空格。

if ....; then
....
elif ....; then
....
else
....
fi
[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等
-r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真
含条件选择的shell脚本 对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。
基本的if条件命令选项有: - eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在
几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。

下面举二个例子吧,以方便大家的理解。

1、判断文件是否存在


#!/bin/sh
# 判断文件是否存在
# link:www.jb51.net
# date:2013/2/27
YACCESS=`date -d yesterday +%Y%m%d`
FILE="access_$YACCESS.log.tgz"
cd /data/nginx/logs
if [ -f "$FILE" ];then
echo "OK"
else
echo "error $FILE" > error.log
mail -s "$FILE backup fail" test@126.net <error.log
fi



#!/bin/sh
# 清除相关文件,并按时间段记录日志
# link:www.jb51.net
# date:2013/2/27
#
DIR=/data/img_cache
DAY=`date +"%Y-%m-%d %H:%M"`
NUM=`ls $DIR |wc -l`
DIRNAME=`ls $DIR| grep leveldb | head -n 1 | awk '{print $NF}'`
if [[ $NUM -gt 3 ]];then
  rm -rf $DIR/$DIRNAME
  echo "---------$DAY----($DIR)-----------------------" >> /tmp/img_cache.log
  echo "$DIRNAME Deleted successful" >> /tmp/img_cache.log
fi
分享到:
评论

相关推荐

    shell_ip_orangewgz_linux_shell_shell编程_shell脚本_

    本文将深入探讨标题"shell_ip_orangewgz_linux_shell_shell编程_shell脚本_"所提及的利用Shell编写判断IP地址合法性的脚本这一主题。我们将围绕Linux Shell、Shell脚本、shell编程以及如何在orangewgz Linux发行版上...

    shell_config.rar_Linux shell_parsing shell_shell config_get_sh

    标题"shell_config.rar_Linux shell_parsing shell_shell config_get_sh"暗示了我们要讨论的是如何使用Shell脚本来解析配置文件并获取其中的变量参数。这个过程在系统管理、应用程序自动化或者脚本编程中非常常见。 ...

    Linux_Shell_Scripting_with_Bash

    1. 条件语句:`if...then...else...fi`结构用于根据条件执行不同的代码块。 2. 循环:`for`循环遍历列表,`while`和`until`循环根据条件重复执行代码。 3. 选择结构:`case...esac`用于多分支决策。 五、函数 Bash...

    ftp.rar_FTP SHELL_linux 远程shell_shell

    在这个“ftp.rar_FTP SHELL_linux 远程shell_shell”的压缩包中,我们主要关注的是如何使用FTP在Linux环境中创建一个远程shell,以便进行系统管理或者文件操作。 FTP Shell,即通过FTP协议实现的命令行交互式环境,...

    Linux_and_Unix_Shell_Programming

    **Linux与Unix Shell编程** 在IT领域,Linux和Unix操作系统是服务器端的常用平台,而Shell编程则是这两种系统中的核心工具之一。Shell编程允许用户通过编写脚本自动化日常任务,提高工作效率,它也是系统管理员和...

    判断操作系统版本模块的例子.rar_If_ Then

    这个"判断操作系统版本模块的例子.rar_If_Then"提供了一个利用`If...Then`语句来检测Windows操作系统版本的示例。这种方法可以让开发者在不依赖条件编译的情况下,动态地根据操作系统版本执行不同的代码逻辑。 首先...

    Linux.Shell_.Scripting.Cookbook | Classic_Shell_Scripting [pdf] 英文

    - **条件语句**:`if-then-else-fi`结构用于基于条件执行代码,`[[`...`]]`是更安全的条件测试运算符。 - **循环结构**:`for`、`while`和`until`循环用于重复执行代码块。例如,`for i in {1..5}; do echo $i; done...

    linux_shell_编程.TXT

    - **if/then 结构**:基本的条件分支结构。 - **比较操作符**:用于数值和字符串比较。 - **逻辑操作符**:如 &&、|| 用于组合多个条件表达式。 - **循环结构** - **for 循环**:遍历列表或文件等。 - **while...

    linux与unix shell编程指南21-24.rar_Linux shell_Linux与Unix SHELL编程指南_l

    Linux与Unix Shell编程指南是学习系统管理、自动化任务和脚本编写的重要资源。Shell,作为Linux和Unix系统中的命令解释器,它不仅提供了一个交互式的环境,还允许用户通过编写脚本来实现对系统的高级控制。这篇文章...

    linux shell script tutorial_v2_r5.pdf

    **4.6 多级If-Then-Else** - 多个条件分支的选择。 **4.7 命令退出状态** - 检查上一个命令的成功或失败状态。 **4.8 条件执行** - 根据前一个命令的结果决定是否执行后续命令。 **4.9 逻辑运算符** - AND(&...

    shell_脚本_if_参数

    ### Linux Shell 脚本编程中的 If 语句及其参数详解 在 Linux Shell 脚本编程中,`if` 语句是非常重要的控制结构之一,用于根据不同的条件执行相应的命令或逻辑。为了使 `if` 语句更加灵活和强大,Shell 提供了一...

    Linux_Shell_程序设计实验[文].pdf

    在上述提供的文件中,我们看到了10个不同的Shell脚本示例,涵盖了基本的控制结构,如条件语句(if-then, if-then-else, case)和循环语句(for, while, until)。下面我们将详细讨论这些知识点。 1. 回显用户名的...

    linux与unix shell编程指南19-20.rar_Linux与Unix SHELL编程指南_linux shell编程

    《Linux与Unix SHELL编程指南》是一本深入探讨shell编程的经典著作,对于系统管理员和开发者来说,掌握shell脚本编写技巧是至关重要的。Shell作为Linux和Unix操作系统中的命令解释器,不仅提供了与操作系统交互的...

    linux Shell编程入门 实例讲解详解

    Shell内部命令:例如if、then、else、while、for、case等。 3. 流程控制命令:例如if、then、else、while、for、case等。 四、实例讲解 * 编写一个简单的Shell脚本:使用#!/bin/sh符号开头,编写一个简单的Shell...

    linux shell编程if语句内判断参数详解

    Linux Shell 编程 if 语句内判断参数详解 Linux Shell 编程中,if 语句是一种基本的控制结构,用于根据条件执行不同的操作。if 语句可以与各种参数结合使用,以判断文件、目录、字符串、数字等的状态,从而执行相应...

    Linux_base_shell.sh

    if [ -f "$filename" ] then n=`echo $fname | sed -e "s/$1/$2/"` mv $filename $n fi done ``` 六、替换空格 `blank_name`函数用于将文件名中的空格替换为下划线,方便在命令行中处理包含空格的文件名。 七...

    LINUX SHELL脚本攻略(中文版带书签)_linux_

    Linux Shell脚本攻略是一本专为想要深入理解并掌握Linux Shell编程技术的读者精心编写的指南。Shell脚本是Linux操作系统中的强大工具,它允许用户通过编写简单的命令行指令组合来自动化日常任务,提高工作效率。这...

    Linux_unix_shell

    Linux和Unix Shell是操作系统交互的核心工具,为用户提供了一个命令行界面来执行各种系统操作。Shell不仅是一个命令解释器,还是一个强大的编程环境,允许用户通过编写脚本自动化重复任务。以下是一些关于Linux和...

    linux shell程序设计实验1

    在这个“linux shell程序设计实验1”中,我们将探讨如何利用基本的`case`和`if`语句来编写简单的Shell程序。 一、Shell程序基础 在Linux环境中,Shell是一个命令解释器,它接收用户输入的命令并执行。Bash是最常见...

    shell linux 日志 运维_shell

    在IT运维领域,Shell脚本是一种非常实用的工具,尤其对于Linux系统来说,它能帮助自动化执行各种任务,包括监控和记录系统状态。本话题主要关注如何使用Shell脚本来自动检查网络状态,并将这些信息记录到日志文件中...

Global site tag (gtag.js) - Google Analytics