shell 中的与、或表达式
今天总结一下linux shell中逻辑关机表达方式。
逻辑与的表达:
1)、if [ $xxx=a -a $xx=b ]
注:-a表示and的意思
2)、if [ $xxx=a ] && [ $xx=b ]
eg:
#! /bin/bash
webapps_dir='/var/log/webapps'
webapps_owner=`ls -l /var/log|grep 'webapps$'|awk '{print $3}'`
webapps_group=`ls -l /var/log|grep 'webapps$'|awk '{print $4}'`
localhost_ip=`ifconfig |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "|head -1`
if [ -d ${webapps_dir} ]; then
#与的用法
if [ ${webapps_owner} = 'whtest' ] && [ ${webapps_group} = 'whtest' ]; then
exit 0
else
chown -R whtest:whtest ${webapps_dir}
echo "host_ip:${localhost_ip},webapps文件赋予whtest"
fi
else
mkdir -p ${webapps_dir}
chown -R whtest:whtest ${webapps_dir}
echo "host_ip:${localhost_ip},webapps文件已创建,且赋予whtest"
fi
逻辑或的表达:
1)、if [ $xxx=a -o $xx=b ]
注:-o表示or的意思
2)、if [ $xxx=a ] || [ $xx=b ]
eg:
#! /bin/bash
webapps_dir='/var/log/webapps'
webapps_owner=`ls -l /var/log|grep 'webapps$'|awk '{print $3}'`
webapps_group=`ls -l /var/log|grep 'webapps$'|awk '{print $4}'`
localhost_ip=`ifconfig |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "|head -1`
if [ -d ${webapps_dir} ]; then
#或的用法
if [ ${webapps_owner} = 'whtest' ] || [ ${webapps_group} = 'whtest' ]; then
exit 0
else
chown -R whtest:whtest ${webapps_dir}
echo "host_ip:${localhost_ip},webapps文件赋予whtest"
fi
else
mkdir -p ${webapps_dir}
chown -R whtest:whtest ${webapps_dir}
echo "host_ip:${localhost_ip},webapps文件已创建,且赋予whtest"
fi
shell 中的与、或表达式的更多相关文章
- E2.在shell中正确退出当前表达式
E2.在shell中正确退出当前表达式 优雅退出当前表达式 在shell里面输出复杂的多行表达时,经常由于少输入一个引号,一直无法退出当前的表达式求值,也没有办法终止它,以前只能通过两次Ctrl+C结 ...
- shell中的双括号表达式
语法格式 (( expression )) expression可以是任何数学表达式,可以包含的操作符有: + 加 - 减 * 乘(无需转义) / 除 % 取余 ** 指数 == 等于 != 不等 ...
- Linux shell中的一个问题 ${}带正则匹配的表达式
目前在准备龙芯项目的PMON,在研究其编译过程的时候,看到一些make 语句,百思不得其解.后来在shell编程中看到一点资料,牵扯到Shell中的正则表达式.故记录下来,以备后来查阅. 问题: 在某 ...
- shell if判断中常用的a-z表达式含义
shell if判断中常用的a-z表达式含义 可通过在在linux中man test命令查看下列参数的详细用法 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 ...
- shell中各种括号的作用()、(())、[]、[[]]、{}
一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有 ...
- Linux shell中的符号
.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用. 括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空 ...
- shell中的循环
shell中的循环 for循环 类似于C语言的步长控制 例如: ;i<=;i++)); ); done 将1到10,依次乘以4,然后打印出来. 这里顺便提一下,shell里面表达式的计算,可以有 ...
- shell中的大括号和小括号
1.shell中的大括号和小括号 1.${var} 2.$(cmd) 3.() 和 {} 4.${var:-string}, ${var:+string}, ${var:=string}, ...
- shell 中数学计算总结
shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵. 1.错误方法举例 a) var=1+1 echo $var ...
随机推荐
- ABP(现代ASP.NET样板开发框架)系列之10、ABP领域层——实体
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之10.ABP领域层——实体 ABP是“ASP.NET Boilerplate Project (ASP.NET样板 ...
- [APUE]不用fcntl实现dup2函数功能
dup2的函数定义为: #include <unistd.h> int dup2(int src_fd, int new_fd); 自己实现dup2函数有几个关键点: 1,检查给定的源fd ...
- nfs 笔记 2
http://woxihuanpes.blog.163.com/blog/static/12423219820097139145238/ http://blog.csdn.net/willvc123/ ...
- 你所不知道的setTimeout
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务.初始接触它的人都觉得好简单 ...
- 解析大型.NET ERP系统 权限模块设计与实现
权限模块是ERP系统的核心模块之一,完善的权限控制机制给系统增色不少.总结我接触过的权限模块,以享读者. 1 权限的简明定义 ERP权限管理用一句简单的话来说就是:谁 能否 做 那些 事. 文句 含义 ...
- c#操作MangoDB 之MangoDB CSharp Driver驱动详解
序言 MangoDB CSharp Driver是c#操作mongodb的官方驱动. 官方Api文档:http://api.mongodb.org/csharp/2.2/html/R_Project_ ...
- 【.NET深呼吸】如何反序列化动态JSON
.net本身除了支持SOAP.XML.二进制等序列化和反序列化,后来也加入了对JSON的序列化的支持.然而,在实际开发中,常常会遇到结构不确定的JSON对象,这些对象可能是其他代码动态生成的,你事先无 ...
- 存储程序(1)——MYSQL
MySQL支持把几种对象存放在服务器端供以后使用.这几种对象有一些可以根据情况通过程序代码调用,有一些会在数据表被修改时自动执行,还有一些可以在预定时刻自动执行.它们包括以下几种: 1.存储函数(st ...
- Webstorm编译TypeScript
下载webstorm 下载node.js编译器npm Webstorm的安装很简单.但如果没有Java For Mac 环境打开Webstorm时会有提示,点击提示会跳转下载链接,下载安装就好. ...
- Linux平台 Oracle 11gR2 RAC安装Part2:GI安装
三.GI(Grid Infrastructure)安装 3.1 解压GI的安装包 3.2 安装配置Xmanager软件 3.3 共享存储LUN的赋权 3.4 使用Xmanager图形化界面安装GI 3 ...