#!/bin/sh
#test 条件测试
#test 有两种格式
# test 条件 或 [ 条件 ]
# -d 目录 -s 文件长度大于0、非空
# -f 正规文件 -w 可写
# -L 符号连接 -u 文件有suid位设置
# -r 可读 -x 可执行
#
cd ..
ls -l menu.lst
[ -w menu.lst ]
echo $?
test -w menu.lst
echo $?
test -x menu.lst
echo $?
# -a 逻辑与,操作符两边均为真,结果为真,否则为假
# -o 逻辑或,操作符两边一边为真,结果为真
# ! 逻辑否,条件假,结果为真
[ -w menu.lst -a -r menu.lst ]
echo $?
############################################
#字符串测试
# test "string" test string_operator "string" test "string" string_operator "string"
# [ string_operator string ] [ string string_operator string ]
# = 两个字符串相等 != 两个字符串不等
# -z 空串 -n 非空串
#############################################
echo "测试Editor是否为空?"
[ -z $EDITOR ]
echo $?
[ "tape" != "tape" ]
echo $?
# 测试数值
# "number" 数值操作符 "number"
# [ "number" 数值操作符 "number" ]
# -eq 数值相等 -ne 数值不相等
# -gt 第一个数大于第二个数 -lt 第一个数小于第二个数
# -ge第一个数大于等于第二个数 -le 第一个数小于等于第二个数
#
number=130
[ "$number" -eq "131" ]
echo $?
[ "$number" -gt "120" ]
echo $?
[ "$number" -le "120" ]
echo $?
[ "990" -le "995" -a "123" -gt "33" ]
echo $?
#expr 命令一般用于整数值,但也可用于字符串
# expr argument operator arguement
expr 10 + 10
expr 100 - 50
expr 3 / 3
expr 3 / 6
expr 30 / 3 / 2
expr 30 / 3
expr 30 \* 3
expr 30 \* 9
# 增量计数
#
LOOP=0
LOOP=`expr $LOOP + 1 `
#数值测试
#expr rr + 1
value=12
expr $value + 10 >/dev/null 2>&1
echo $?
value=hello
expr $value + 10 >/dev/null 2>&1
echo $?
expr $value + 10 >/dev/null 2>&1
条件测试
sh/bash/dash/ksh/zsh等Shell脚本
前往
- 公告/注意事项
- ↳ 新闻和通知
- ↳ 软件推荐
- 系统安装
- ↳ 教学和常见问答
- ↳ 系统安装和升级
- ↳ 启动和引导
- ↳ 网卡无线拨号
- ↳ 硬件与内核
- ↳ 笔记本及便携设备
- ↳ Ubuntu衍生版
- ↳ 其他类Unix OS发行版
- ↳ Debian发行版
- 配置美化
- ↳ 中文显示和输入法
- ↳ 个人配置文件存放点
- ↳ 软件文档翻译
- ↳ 窗口管理器及美化
- ↳ 桌面展示
- 软件使用
- ↳ 办公、图像、机械电子设计等
- ↳ Vim和Emacs
- ↳ 开源模板库
- ↳ 互联网相关软件
- ↳ 影音多媒体
- ↳ 游戏和模拟器
- ↳ 虚拟机和虚拟化
- ↳ Wine及其分支
- ↳ 其它类软件
- 服务器管理
- ↳ 服务器运维
- ↳ 云计算和容器(K8S/KVM/Docker/WSL等)
- ↳ Ubuntu VPS
- 程序设计与开发
- ↳ Shell脚本
- ↳ 软件/网站开发
- ↳ 内核及嵌入式开发
- ↳ Ubuntu编译和打包
- ↳ 开源小工具
- ↳ 挑战任务
- 感想与交流
- ↳ 深度PK版
- ↳ Ubuntu故事和感慨
- ↳ 同城交流
- ↳ 校园社团
- ↳ 港澳台校区
- ↳ 国外校区
- 站务区
- ↳ 论坛管理
- ↳ Ubuntu中文网上商店