文章目录
前言
- 在简单的shell脚本程序中,各条语句将按先后顺序依次执行,从而实现批处理的自动化过程。
- 但是,单一的顺序结构使得脚本过于机械化,不够“智能”,难以处理更加领过的系统任务。
一:条件测试
1.1:文件测试
1.1.1:test命令
-
test命令:测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值
-
命令基本格式 格式一:test 条件表达式 格式二:[ 条件表达式 ] '两端要有空格,此法更为常用'
1.1.2:文件测试
-
文件测试基本格式 [ 操作符 文件或目录 ] '注意两端空格' &? 返回0表示条件成立,返回非零值表示条件不成立 && 逻辑与,"而且"的意思 || 逻辑或,"或者"的意思
-
常见的测试操作符 解释 -d 测试是否为目录(directory) -e 测试目录或文件是否存在(Exist) -f 测试是否为文件(File) -r 测试当前用户是否有权限读取(Read) -w 测试当前用户是否有权限写入(Write) -x 测试当前用户是否有权限执行(eXcute)
[root@localhost opt]# cd aaa [root@localhost aaa]# ls [root@localhost aaa]# mkdir ccc [root@localhost aaa]# ls ccc [root@localhost aaa]# test -d ccc [root@localhost aaa]# echo $? 0 [root@localhost aaa]# test -f ccc [root@localhost aaa]# echo $? 1 [root@localhost aaa]# touch bbb.txt [root@localhost aaa]# ls bbb.txt ccc [root@localhost aaa]# test -f bbb.txt [root@localhost aaa]# echo $? 0 [root@localhost aaa]# [ -d ccc ] [root@localhost aaa]# echo $? 0 [root@localhost aaa]# [ -x ccc ] [root@localhost aaa]# echo $? 0 [root@localhost aaa]# ls -l total 0 -rw-r--r--. 1 root root 0 Nov 26 15:18 bbb.txt drwxr-xr-x. 2 root root 6 Nov 26 15:17 ccc [root@localhost aaa]# useradd lisi [root@localhost ~]# echo "123123" | passwd --stdin lisi 更改用户 lisi 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@localhost ~]# su - lisi 最后一次失败的登录:二 11月 26 15:28:39 CST 2019pts/0 上 最有一次成功登录后有 1 次失败的登录尝试。 [lisi@localhost aaa]$ [ -w ccc ] [lisi@localhost aaa]$ echo $? 1 [lisi@localhost aaa]$ [ -r ccc
-