`
wen866595
  • 浏览: 264163 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

shell 笔记 之测试选项、测试命令

阅读更多

简单的测试:

#!/bin/bash

echo 文件比较运符
echo 运算符        描述                         示例
echo -e filename   如果 filename存在,则为真    [ -e /var/log/syslog ]
echo -d filename   如果 filename为目录,则为真     [ -d /tmp/mydir ]
echo -f filename   如果 filename为常规文件,则为真     [ -f /usr/bin/grep ]
echo -L filename   如果 filename为符号链接,则为真     [ -L /usr/bin/grep ]
echo -r filename   如果 filename可读,则为真   [ -r /var/log/syslog ]
echo -w filename   如果 filename可写,则为真   [ -w /var/mytmp.txt ]
echo -x filename   如果 filename可执行,则为真     [ -L /usr/bin/grep ]
echo filename1-nt filename2    如果 filename1比 filename2新,则为真    [ /tmp/install/etc/services -nt /etc/services ]

echo filename1-ot filename2    如果 filename1比 filename2旧,则为真    [ /boot/bzImage -ot arch/i386/boot/bzImage ]


echo 字符串比较运算符
echo -z string     如果 string长度为零,则为真     [ -z "$myvar" ]
echo -n string     如果 string长度非零,则为真     [ -n "$myvar" ]
echo string1= string2    如果 string1与 string2相同,则为真  [ "$myvar" = "one two three" ]
echo string1!= string2     如果 string1与 string2不同,则为真  [ "$myvar" != "one two three" ]


echo 算术比较运算符
echo num1-eq num2  等于    [ 3 -eq $mynum ]
echo num1-ne num2  不等于  [ 3 -ne $mynum ]
echo num1-lt num2  小于    [ 3 -lt $mynum ]
echo num1-le num2  小于或等于  [ 3 -le $mynum ]
echo num1-gt num2  大于    [ 3 -gt $mynum ]
echo num1-ge num2  大于或等于  [ 3 -ge $mynum ]

 

用test命令、[[  ]] 进行更复杂的测试:

#!/bin/bash


# test expr 和 [ expr ] 是等价的;可以用$?检查返回值;可以使用&&和||操作返回值
test 3 -gt 4 && echo true || echo false


# 可以使用-eq, -ne, -lt, -le, -gt, -ge 比较算术值。

# 可以使用操作符=, !=, <, > 比较字符串是否相等,不相等或者第一个字符串的排序在第二个字符串的前面或后面。
# 单目操作符-z 测试null字符串;
# 由于shell也用< >操作符进行重定向,所以必须使用\< \> 加以转义。

[ "abc" != "def" ];echo $?

[ "abc" \< "ab" ];echo $?

[ "abc" \> "abcd" ];echo $?

# -a和-o选项允许使用逻辑运算符AND和OR将表达式组合在一起。单目操作符!是逻辑非。
# shell通常要在子shell中运行括号中的表达式,所以需要用\( \)转义括号,或者把这些操作符括在单引号或双引号内。
# 
test "a" = "a" -a 3 -lt 4 ; echo $?
test "a" != "b" -a 3 -ge 4 ; echo $?

[ ! \( "a" = "a" -o 3 -lt 4 \) ]; echo $?
[ ! \( "a" = "a" -o 3 -lt 4 ")" ]; echo $?


# (( 和 [[
# (( expr )) 复合命令计算算术表达式,如果表达式求值为0,则设置推出状态为1;
# 如果求值为非0,则设置为0.
# 不需要对(( )) 之间的操作符转义。可执行C语言中常见的算术、逻辑和位操作。
# 算术只对整数进行。
let x=2 y=2**3 z=y*3
echo $x  $y  $z

(( w=y/x + ( (~ ++x) & 0xf) )); echo $? $x $y $w
# (( w=y/x + ( (~ ++x) & 0xf ) )); echo $? $x $y $w


# [[ ]] 可以对文件名和字符串使用更自然的语法。
[[ (-d "`pwd`") && (-w "`pwd`") ]] && echo "`pwd` is writable directory"

# 在使用= 或 != 操作符时,符合命令[[ 还能在字符串上进行模式匹配。
[[ "abc def .d,x--" = a[abc]*\ ?d* ]]; echo pattern match $?
[[ "abc def c--" = a[abc]*\ ?d ]]; echo pattern match $?
[[ "abc def d,x" = a[abc]*\ d* ]]; echo pattern match $?
 

 

2
4
分享到:
评论

相关推荐

    shell命令shell命令shell命令

    shell命令shell命令shell命令shell命令shell命令shell命令shell命令shell命令shell命令shell命令shell命令shell命令shell命令shell命令

    shell编程个人笔记

    shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人...

    linux shell 笔记 (未整理)

    linux shell 笔记 没有整理!

    Shell学习笔记

    Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记

    shell 笔记

    详细记录shell学习笔记,例子、解析等都有分析和记录!

    SHELL命令笔记汇总

    SHELL命令笔记汇总,本人自己学习Linux的一些个人笔记和心得,便于常规指令快速记忆和使用。全面的还是以书籍为主。。

    Shell脚本学习笔记

    第1章 BashShell命令 6 1.1 Shell提示符 6 1.2 文件与目录Shell命令 7 1.2.1 更改目录命令(cd) 7 1.2.2 列表命令(ls) 7 1.2.3 操作文件命令 10 1.2.4 目录处理命令 14 1.2.5 查看文件内容命令 15 1.3 监控程序 20 ...

    linux脚本shell学习笔记

    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识

    shell学习笔记(常用shell命令介绍和用例)

    shell命令的学习笔记。 包含常用的shell命令说明和使用用例。 可快速入门,也可当手册使用。

    linux shell命令学习笔记

    linux shell命令学习笔记

    COM ATL ShellExtension编程之选项卡标签页.zip

    COM ATL ShellExtension编程之选项卡标签页.zip

    shell命令常用shell命令

    Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是...

    091-从无回显命令执行到getshell的渗透测试.pdf

    091-从无回显命令执行到getshell的渗透测试.pdf

    Linux测试带宽(shell),测试流量

    5.使用后台运行命令执行:nohup ./bandwidth.sh (注:停止脚本 pkill -9 bandwidth.sh && pkill -9 wget) 6.查看结果:BandwitdthResult.txt //********************************************************* 测试...

    Linux教程+ shell学习笔记 + Shell脚本常用命令+shell脚本100例资源合集

    本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...

    常用shell命令常用shell命令

    常用shell命令常用shell命令常用shell命令常用shell命令常用shell命令

    LINUX SHELL命令练习题

    LINUX SHELL命令练习 题

    Linux shell命令详解

    简单的说shell程序就是一个包含若干行shell或者linux命令的文件,象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如Ⅵ等.在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成...

    shell编程学习笔记

    $-:显示shell使用的当前选项,与set命令功能相同;$?:显示最后命令的退出状态(0表示没有错误,其他任何值表明有错误。)。 变量的规则 1.变量与变量内容以一个等号『=』来连结,如下所示『myname=...

Global site tag (gtag.js) - Google Analytics