|  | 
| 今天抽空写了下WENV的README.TXT,望大家补充: 一:变量赋值
 WENV set VAR=[$|L,][$input,][STRING]
 VAR:变量名,不超过8个字符,首字符必须是"a_z"/"A_Z"/"_"开始,除首字符外允许"0~9"数字;
 变量名区分大小写;
 $U,全转变为大写;
 $L,全转变为小写;
 $input,从键盘输入;
 STRING,提示;
 注:所有参数不区分大小写;
 变量值不能超过512个字节,最多允许自定义64-1个变量.
 如:1)根据提示从键盘输入,全转为大写后保持给srspath变量
 WENV set srspath=$u,$input,please input SRS driver path:
 2)设置变量a,并把值全转为大写
 WENV set a=ABCDabcd1234
 WENV set a=$u,${a}
 得到a=ABCDABCD1234
 3)清除某个变量
 WENV set a=        =后为空,清除变量a
 4)清除某些字符开头的所有变量
 WENV reset a*      清除a开头的所有变量
 WENV reset sr*     清除sr开头的所有变量
 5)清除所有变量
 WENV reset
 二:字符串运算
 1: ${VAR:X:Y}
 提取第X个字符后面的Y个字符,如果X为负数则从倒数第X个开始提取Y长度的字符;
 如果Y的值为空则提取第X个字符后面的所有有字符;
 如果Y的值为负数,则去掉倒数Y个字符;
 WENV set a=ABCDabcd1234
 WENV set b=${a:4:4}     得到b=abcd
 WENV set b=${a:-8:4}    得到b=abcd
 WENV set b=${a:4:-4}    得到b=abcd
 WENV set b=${a:-8:-4}   得到b=abcd
 2: ${VAR#STRING}
 提取STRING字符串后面的内容,从左往右第一个位置开始
 WENV set a=ABCD;abcd;1234
 WENV set b=${a#;}       得到b=abcd;1234
 3: ${VAR##STRING}
 提取STRING字符串后面的内容,从右往左第一个位置开始
 WENV set a=ABCD;abcd;1234
 WENV set b=${a##;}      得到b=1234
 4: ${VAR%STRING}
 提取STRING字符串前面的内容,从右往左第一个位置开始
 WENV set a=ABCD;abcd;1234
 WENV set b=${a%;}       得到b=ABCD;abcd
 5: ${VAR%%STRING}
 提取STRING字符串前面的内容,从左往右第一个位置开始
 WENV set a=ABCD;abcd;1234
 WENV set b=${a%%;}       得到b=ABCD
 
 三:字符串或数值比较
 WENV check ${a} OPERATOR ${b}
 OPERATOR:==、<>、>=、<=
 如:WENV set a=abc
 WENV check ${a}==abc && echo ${a}=abc
 WENV calc a=123
 WENV check ${a}==123 && echo ${a}=123
 WENV check ${a}<=150 check ${a}>=100 && echo ${a}>=100.and.${a}<=150
 上面实现了IF语句功能.
 注: 注意比较时,后面的字符串忽略小写对比.
 如:
 abc==ABC 值为真
 aBc==abc 值为假
 abc==aBc 值为真.
 只要前面部分某个字符是大写,后面部分对应的一定要大写才能匹配
 
 四:数值运算
 WENV calc [[VAR | INTEGER]=] INTEGER OPERATOR [INTEGER]
 =前面如果是一个非数字字符串,则会把计算结果赋值给变量;
 OPERATOR:包含+、-、*、/、&(与)、|(或)、^(位异或)、>>、<<
 *INTEGER表示内存地址的值;
 如:
 WENV calc a=*60000+1   表示把内存地址0x60000的值再加1赋值给变量a
 WENV calc a=1<<10      左移10位,即2的10次方,等于1024
 WENV calc a=b++         a=b,b=b+1
 WENV calc a=++b         b=b+1,a=b
 WENV calc a=b--         a=b,b=b-1
 WENV calc a=--b         b=b-1,a=b
 ++、--只能用在=右边.
 
 五:命令序列依次执行
 WENV read FILE
 
 六:执行内置命令
 WENV run COMMAND
 如:
 WENV set imgpath=/SRS_f6/srs_f6.IMG
 WENV set imgpath=$u,${imgpath}
 WENV run map --mem ${imgpath} (fd0)
 map --hook
 
 可以动态执行命令,如:
 write (md)0x300+1 map --status\0
 WENV run *0x60000
 
 run可以连续运行多条内部命令,命令与命令之间使用以下字符隔开
 ]]]  无条件执行
 ]]&  当前一条命令返回真时执行后面的语句.否则直接返回
 ]]|  当前一条命令返回假时执行后面的语句.否则直接返回.
 
 七:显示变量值
 WENV get [VAR]
 如:WENV set a=img
 WENV get a    显示变量a及值
 WENV get      显示所有变量及值
 内部变量?_GET
 ?_GET这个内部变量定义了WENV get VAR的变量值长度(字节数)
 如:WENV set a=abcdABCD1234
 WENV get a && WENV calc len=${?_GET}  得到len=12
 
 [ 本帖最后由 zhaohj 于 2010-10-10 16:35 编辑 ]
 | 
 |