本文介紹系統函數及字串如何組合嵌套使用。
如果參數化的部分(即等號右側)需要系統函數搭配字串或者另一個系統函數,規則是直接拼接即可,不需要額外的串連字元。具體樣本如下:
參數化的部分需要系統函數(${sys.random(1,20)})搭配字串(abc),且字串在前,則組合使用方式為
=abc${sys.random(1,20)}。參數化的部分需要系統函數(${sys.random(1,20)})搭配另一個系統函數(${sys.select("a","b","c")}),則組合使用方式為
=${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")}