目标
特别说明:
1)[ 两边必须有空格 ]
2) [[ 两边必须有空格 ]]
3) 更多判断, man test 查看。
2、条件判断相关参数
问:你要判断什么?
答:我要判断文件类型,判断文件新旧,判断字符串是否相等,判断权限等等
2.1 判断文件类型
| 判断参数 | 含义 |
|---|---|
| -e | 判断文件是否存在(任何类型文件) |
| -f | 判断文件是否存在,并且是一个普通文件 |
| -d | 判断文件是否存在,并且是一个目录 |
| -L | 判断文件是否存在,并且是一个软链接文件 |
| -b | 判断文件是否存在,并且是一个快设备文件 |
| -S | 判断文件是否存在,并且是一个套接字文件 |
| -c | 判断文件是否存在,并且是一个字符设备文件 |
| -p | 判断文件是否存在,并且是一个命名管道文件 |
| -s | 判断文件是否存在,并且是一个非空文件(有内容) |
2.2 判断文件权限
| 判断参数 | 含义 |
|---|---|
| -r | 当前用户对其是否可读 |
| -w | 当前用户对其是否可写 |
| -x | 当前用户对其是否可执行 |
| -u | 是否usuid,高级权限冒险位 |
| -g | 是否sgid,高级权限强制位 |
| -k | 是否有t位,高级权限粘滞位 |
2.3 判断文件新旧
| 判断参数 | 含义 |
|---|---|
| file1 -nt file2 | 比较file1是否比file2新 |
| file1 -ot file2 | 比较file1是否比file2旧 |
| file1 -ef file2 | 比较是否为同一个文件,或者用于判断硬链接,是否指向同一个inode |
2.4 判断整数
| 判断参数 | 含义 |
|---|---|
| -eq | 相等(equal) |
| -ne | 不等(Unequal) |
| -gt | 大于(greater than) |
| -lt | 小于(less than) |
| -ge | 大于等于(Greater than or equal to) |
| -le | 小于等于(Less than or equal to) |
2.5 判断字符串
| 判断参数 | 含义 |
|---|---|
| -z | 判断是否为空字符串,字符串长度为0则成立 |
| -n | 判断是否为非空字符串,字符串长度不为0则成立 |
| string1 = string2 | 判断字符串是否相等 |
| string1 != string2 | 判断字符串是否不相等 |
2.6 多重条件判断
| 判断符号 | 含义 |
|---|---|
| -a 和 && | 逻辑与 |
| -o 和 || | 逻辑或 |
特别说明:
&& 前面的表达式为真,才会执行后面的代码
|| 前面的表达式为假,才会执行后面的代码
; 只用于分割命令或表达式
- 类C风格的数值比较

- 字符串比较


[ ] 和 [[ ]区别
1、当做字符串判断时,如果有一个字符串为空且没有加引号的话就会报错。
$curl = new curl($gGlobalConfig['App_livmedia']['host'], $gGlobalConfig['App_livmedia']['dir']);$curl->setReturnFormat('json');$curl->initPostData();$curl->addRequestData('id',$id);$ret = $curl->request('vod.php');$video = $ret[0];$videourl = $video['vodurl'] . $video['video_filename'] . '.m3u8';if (ISIOS){$videourl = str_replace('.mp4', '.m3u8', $videourl);}$aspect = $video['aspect'];$rate = explode(':', $aspect);$rate = $rate[1] / $rate[0];$videoheight = $rate * $h5width;$imagewidth = $video['img_info']['imgwidth'];$imageheight = $video['img_info']['imgheight'];$h5height = intval($imageheight / $imagewidth * $h5width);$imginfo = web_get_pic_url($video['img_info'],$h5width,$h5height);
