test 命令也可以简写为[]它的用法为:
注意[]和expression之间的空格,这两个空格是必须的否则会导致语法错误。
1. 关于某个档名的『文件类型』判断如 test -e filename 表示存在否 |
该『档名』是否存茬?(常用) |
该『档名』是否存在且为档案(file)(常用) |
该『文件名』是否存在且为目录(directory)?(常用) |
该『档名』是否存在且为一个 block device 装置 |
该『档名』是否存在且为一个 Socket 档案? |
该『档名』是否存在且为一个 FIFO (pipe) 档案 |
该『档名』是否存在且为一个连结档? |
侦测该档名是否存在且具有『可读』的权限 |
侦测该档名是否存在且具有『可写』的权限? |
侦测该档名是否存在且具有『可执行』的权限 |
侦测该文件名是否存在且具有『SUID』的属性? |
侦测该文件名是否存在且具有『SGID』的属性 |
侦测该文件名是否存在且具有『Sticky bit』的属性? |
侦测该档名是否存在且为『非空白档案』 |
判斷 file1 与 file2 是否为同一档案,可用在判断 hard link 的判定上主要意义在判定,两个档案是否均指向同一个 inode |
5. 判定字符串的数据 |
判定字符串是否为 0 若 string 为空芓符串,则为 true |
判定字符串是否非为 0 若 string 为空字符串,则为 false |
权限时,才回传 true |
权限时,就可回传 true |
##输入档名,并且判断使用者是否真的有輸入字符串如未输入,则结束
# 判断档案是否存在,若不存在则显示讯息并结束脚本
#输入Y或者y,输出ok退出
#输入N或者n,输出oh退出
u 不需要把变量名用双引号""包围起来,即使变量是空值也不会出错。
u 不需要、也不能对 >、< 进行转义转义后会出错。