需求描述:
最近在写一个脚本的时候,要判断一个文件是否存在,有怎么样,没有就创建,这个时候
看到了一个test 结合 || 或者 &&的写法,就查看了下资料记录下是怎么个玩法。
操作过程:
1.判断一个脚本是否存在,如果存在就提示文件存在
[mysql@testvm01 baks]$ ls -l total 0 -rw-rw-r--. 1 mysql mysql 0 Jan 9 14:33 innobin.log [mysql@testvm01 baks]$ test -e innobin.log && echo "file exists" #cmd1&&cmd2的方式,cmd1执行文件存在,反馈状态值是0,然后执行cmd2 file exists
2.判断一个脚本是否存在,如果不存在就提示不存在
[mysql@testvm01 baks]$ ll total 0 -rw-rw-r--. 1 mysql mysql 0 Jan 9 14:33 innobin.log [mysql@testvm01 baks]$ test -e innobinNew.log || echo "file not exists" #cmd1||cmd2的方式,cmd1的返回状态值$?不是0,那么执行了cmd2.这里cmd1执行了,但是文件不存在 file not exists
小结:
linux环境中,多个命令执行,有以下逻辑。
cmd1 && cmd2 && cmd3 #如果cmd1执行完毕,执行的返回状态是0,那么就执行cmd2,如果cmd2执行且返回状态是0,执行cmd3,如此进行下去。
cmd1||cmd2||cmd3 #如果cmd1执行且返回状态不是0,执行cmd2,如果cmd2执行且返回状态值不是0,执行cmd3,依次进行下去。
文档创建时间:2019年1月9日14:38:59