美高梅平台下载-美高梅娱乐平台登录

热门关键词: 美高梅平台下载,美高梅娱乐平台登录

括号中多个命令之间用分号隔开,EL表达式作用

日期:2019-10-07编辑作者:美高梅平台下载

EL表达式作用:

向浏览器输出域对象中的变量或表达式计算结果。用来替换掉jsp表达式

一、shell编程中条件表达式的使用

if  #条件
then
  Command
else
  Command
fi   #别忘了这个结尾

如果if语句忘了结尾fi
test.sh: line 14: syntax error: unexpected end of fi

一、小括号,圆括号()

语法:

  • ${变量或者表达式}

案例:

<%-- Created by IntelliJ IDEA. User: pc Date: 17-4-13 Time: 下午5:04 To change this template use File | Settings | File Templates.--%><%@ page import="java.util.*" contentType="text/html;charset=UTF-8" language="java" %><%@ page import="org.omg.PortableServer.REQUEST_PROCESSING_POLICY_ID" %><html> <head> <title>$Title$</title> </head> <body> <% String str = "小明"; pageContext.setAttribute; pageContext.setAttribute("st1",str+"1", pageContext.PAGE_SCOPE); pageContext.setAttribute("st2",str+"2",pageContext.REQUEST_SCOPE); pageContext.setAttribute("st3",str+"3",pageContext.SESSION_SCOPE); pageContext.setAttribute("st4",str+"4", pageContext.APPLICATION_SCOPE); %> EL表达式:${st}<br> page_EL:${pageScope.st1}<br> request_EL:${requestScope.st2}<br> session_EL:${sessionScope.st3}<br> application_EL:${applicationScope.st4}<br> </body></html>

美高梅娱乐平台登录 1

  • 算数表达式 + - *美高梅平台下载 , /例:${a+b} ${a/b}
 ${20+5} ${20*5}
  • ${a>b} 比较运算 > < == != >= <=
${20>12}
  • 逻辑运算 && || !例:${a && b}
${true && true}
  • 判空null 或空字符串
<% String str1 =""; String str2 =null;pageContext.setAttribute("str1",str1);pageContext.setAttribute("str2",str2); %> 判断为空:${str1==""}<br> 判断为null:${str2==null}<br> 判断为null或为 空:${str2==null||str1==""}<br> 判断为null或为 空:${empty str1}<br>

美高梅娱乐平台登录 2

文集:JavaEE--学习笔记

二、if 的三种条件表达式

1.命令执行成功,等于返回0(比如grep ,找到匹配);执行失败,返回非0(grep,没找到匹配)
if
  command
then

if
  函数
then

 

2.表达式结果为真,则返回0,if把0值引向then
美高梅娱乐平台登录 ,if [ expression_r_r_r  ]    #方括号前后要有空格
then 

 

  1. 表达式结果为假,则返回非0,if把非0值引向then
    if test expression_r_r_r
    then

 

<a name="t1" style="box-sizing: border-box; background: transparent; color: rgb(79, 161, 219); text-decoration: none; margin: 0px; padding: 0px; font-weight: 400; outline: 0px;"></a>

1、单小括号 ()

①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。

②命令替换。等同于cmd,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。

③用于初始化数组。如:array=(a b c d)

三、[ ]&&  ——快捷if

[ -f"/etc/shadow" ] && echo "This computer uses shadowpasswors"
&& 可以理解为then,如果左边的表达式为真则执行右边的语句。

 

<a name="t2" style="box-sizing: border-box; background: transparent; color: rgb(79, 161, 219); text-decoration: none; margin: 0px; padding: 0px; font-weight: 400; outline: 0px;"></a>

2、双小括号 (( ))

①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。

②只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,输出结果全都自动转化成了十进制。如:echo $((16#5f)) 结果为95 (16进位转十进制)

③单纯用 (( )) 也可重定义变量值,比如 a=5; ((a++)) 可将 $a 重定义为6

④常用于算术运算比较,双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。

只要括号中的表达式符合C语言运算规则,

比如可以直接使用for((i=0;i<5;i++)), 如果不使用双括号, 则为for i in seq 0 4或者for i in {0..4}。

再如可以直接使用if (($i<5)), 如果不使用双括号, 则为if [ $i -lt 5 ]。

四、shell的if与c语言if的功能上的区别

shell if:0为真,接着走then。不支持整数变量直接if [ i ],必须是if [ i –ne 0 ];但支持字符串变量直接if,如if [ str ],如果字符串非0则走then。

c语言if:正好相反,非0走then。支持变量直接if ( i )。

 

<a name="t3" style="box-sizing: border-box; background: transparent; color: rgb(79, 161, 219); text-decoration: none; margin: 0px; padding: 0px; font-weight: 400; outline: 0px;"></a>

二、中括号,方括号[]

五、以多条command或者函数作为if条件

echo –n “input:”
read user

if    #多条指令,这些命令之间相当于“and”(与)
  grep $user /etc/passwd >/tmp/null
  who -u | grep $user
then    #上边的指令都执行成功,返回值$?为0,0为真,运行then
  echo "$user has logged"
else     #指令执行失败,$?为1,运行else                           
  echo "$user has not logged"
fi 

 

# sh test.sh
input : macg
macg     pts/0        May1515:55   .          2075(192.168.1.100)
macg has logged
   
# sh test.sh
input : ddd
ddd has not logged

 

<a name="t4" style="box-sizing: border-box; background: transparent; color: rgb(79, 161, 219); text-decoration: none; margin: 0px; padding: 0px; font-weight: 400; outline: 0px;"></a>

1、单中括号 []

①bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是bash自带的命令。if/test结构中的左中括号是调用test的命令标识,右中括号是关闭条件判断的。这个命令把它的参数作为比较表达式或者作为文件测试,并且根据比较的结果来返回一个退出状态码。if/test结构中并不是必须右中括号,但是新版的Bash中要求必须这样。

②Test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。无论是字符串比较还是整数比较都不支持大于号小于号。如果实在想用,对于字符串比较可以使用转义形式,如果比较"ab"和"bc":[ ab < bc ],结果为真,也就是返回状态为0。[ ]中的逻辑与和逻辑或使用-a 和-o 表示。

③字符范围。用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。

④在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号。

六、以函数作为if条件  (函数就相当于command,函数的优点是其return值可以自定义)

if    #以函数作为if条件
  getyn
then    #函数reture值0为真,走then
  echo " your answer is yes"
else    #函数return值非0为假,走else
  echo "your anser is no"
fi

 

<a name="t5" style="box-sizing: border-box; background: transparent; color: rgb(79, 161, 219); text-decoration: none; margin: 0px; padding: 0px; font-weight: 400; outline: 0px;"></a>

2、双中括号[[ ]]

①[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。

②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。

③使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。

比如可以直接使用if [[ $a != 1 && $a != 2 ]], 如果不适用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。

④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。

例子:

[cpp]

view plain

copy

<embed id="ZeroClipboardMovie_1" src="" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="" flashvars="id=1&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. if

    ($i<5)

  2. if

    [ $i -lt 5 ]

  3. if

    [ $a -ne 1 -a $a != 2 ]

  4. if

    [ $a -ne 1] && [ $a != 2 ]

  5. if

    [[ $a != 1 && $a != 2 ]]

  6. for

    i in $(seq 0 4);

    do

    echo $i;done

  7. for

    i in seq 0 4;

    do

    echo $i;done

  8. for

    ((i=0;i<5;i++));

    do

    echo $i;done

  9. for

    i in {0..4};

do

 echo $i;done

七、ifcommand  等价于command+if $?

例1:

$ vi testsh.sh
#!/bin/sh
if
  cat 111-tmp.txt | grep ting1
then
  echo “found”
else
  echo “no found”
fi

 

$ sh testsh.sh
no found

 

$ vi 111-tmp.txt
that is 222file
thisting1 is 111file

$ sh testsh.sh
thisting1 is 111file
found

例2:

$ vi testsh.sh
#!/bin/sh
cat 111-tmp.txt | grep ting1
if [ $? -eq 0 ]
then
  echo $?
  echo “found”
else
  echo $?
  echo “no found”
fi

 

$ sh testsh.sh
1
no found

 

$ vi 111-tmp.txt
that is 222file
thisting1 is 111file

$ sh testsh.sh
thisting1 is 111file
0
found

 

<a name="t6" style="box-sizing: border-box; background: transparent; color: rgb(79, 161, 219); text-decoration: none; margin: 0px; padding: 0px; font-weight: 400; outline: 0px;"></a>

三、大括号、花括号 {}

本文由美高梅平台下载发布于美高梅平台下载,转载请注明出处:括号中多个命令之间用分号隔开,EL表达式作用

关键词:

将json格式多级菜单保存到数据库

/** * 将json菜单保存到数据库 * * @return */ @RequestMapping("save/menu") @ResponseBody public MapString, Object menu() { String jsonStr = "{n"...

详细>>

【美高梅娱乐平台登录】开发出来的项目需要部

7.运行结果访问 从上面可以看出来,jar包运行的时候会404错误,因为默认jsp不会被拷贝进来,而war包里面有包含了j...

详细>>

因为需要使用到这方面内容,starters可以简化Sp

本项目旨在把SpringBoot的特性展示出来,都是开发中经常用到的,可以留作SpringBoot使用备忘录,持续更新中。 原创作...

详细>>

这个是基于Redis缓存的Session共享,让我们开始吧

适用场景 为了使Web能适应大规模的访问,需要实现应用程序的集群部署 实现集群部署首先要解决session的统一,即需要...

详细>>