如果参数化的部分(等号右侧)需要系统函数搭配字符串或者另一个系统函数,规则是直接拼接即可,不需要额外的连接字符。参考以下的例子:

  • 在函数前加字符串:

    =abc${sys.random(1,20)}

    =-234${sys.random(1,20)}

  • 两个函数拼接:

    =${sys.random(1,20)}${sys.select("a","b","c")}

如果系统函数的参数中有单双引号,直接使用单引号,双引号需要在前面再加一个双引号。例如需要给一个字符串做 md5 加密(系统函数是 ${sys.md5("")}),以字符串包含单引号和双引号来分别举例参数化(等号右侧)写法:

  • 需加密字符串是 leo say 'hi' 时:

    =${sys.md5("leo say 'hi'")}

  • 需加密字符串是 leo say "hi" 时:

    =${sys.md5("leo say ""hi""")}

如果系统函数间需要嵌套使用时,不需要额外加双引号,但是函数的参数部分用到了文件参数、自定义参数(如通过字符串定义的和用系统函数定义的)或有拼接的情况才需要加双引号。参考以下例子:

  • substring 的字符串是直接拼接的情况,需要带双引号:

    =${sys.substring("abc${sys.random(1,20)}", 0, 1)}

  • substring 的字符串是函数,所以不需要双引号,但是嵌套的 md5 里面有拼接就需要双引号:

    =${sys.substring(${sys.md5("${input1}${input2}")},2,5)}

  • 需要给来源于数据文件的参数 num2 做一个 base64 的时候,需要加个双引号:

    =${sys.base64("${num2}")}

  • 更复杂的一种情况,函数的参数是字符串,这个字符串是一个 json 的情况,json 里也带了文件参数:

    需要传入函数中的json原文是:{"username":"${username}"} 则函数的嵌套使用如下:

    =${sys.select("{""username"":""${username}""}","blue","green")}