script_start
arm-linux-ld命令

arm-linux-ld命令我们对每个c或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o文件首先是分散的,我们首先要考虑的如何组合起来;其次,这些.o文件存在相互调用的关系;再者,我们最后生成的bin文件是要在硬件中运行的,每一部分放在什么地址都要有仔细的说明。
我觉得在写makefile的时候,最为重要的就是ld的理解,下面说说我的经验:首先,要确定我们的程序用没有用到标准的c库,或者一些系统的库文件,这些一般是在操作系统之上开发要注意的问题,这里并不多说,熟悉在Linux编程的人,基本上都会用ld命令;这里,我们从头开始,直接进行汇编语言的连接。
我们写一个汇编程序,控制GPIO,从而控制外接的LED,代码如下;.text.global _start_start:LDR R0,=0x56000010 @GPBCON寄存器MOV R1,# 0x00000400str R1,[R0]LDR R0,=0x56000014MOV R1,#0x00000000STR R1,[R0]MAIN_LOOP:B MAIN_LOOP代码很简单,就是一个对io口进行设置然后写数据。
我们看它是如何编译的,注意我们这里使用的不是ar m-linux-gcc而是arm-elf-gcc,二者之间没有什么比较大的区别,arm-linux-gcc可能包含更多的库文件,在命令行的编译上面是没有区别。
我们来看是如何编译的:arm-elf-gcc -g -c -o led_On.o led_On.s 首先纯编译不连接arm-elf-ld -Ttext 0x00000000 -g led_On.o -o led_on_elf用Ttext指明我们程序存储的地方,这里生成的是elf文件,还不是我们真正的bin,但是可以借助一些工具可以进行调试。
然后:arm-elf-objcopy -O binary -S led_on_elf led_on.bin生成bin文件。
javascript中如何截取字符串?

javascript中如何截取字符串?JavaScript中截取字符串有三种⽅法,分别是substring(),substr(),split()。
下⾯本篇⽂章就来给⼤家介绍⼀下它们的使⽤⽅法,希望对⼤家有所帮助。
⽅法1:使⽤substring()substring()⽅法⽤于提取字符串中介于两个指定下标之间的字符。
语法:substring(start,stop)● start:⼀个⾮负的整数,指要提取的⼦串的第⼀个字符在字符串中的位置,必需填写的元素● stop:⼀个⾮负的整数,⽐要提取的⼦串的最后⼀个字符在字符串上的位置多 1,可写可不写,如果不写则返回的⼦串会⼀直到字符串的结尾该字符串的长度为stop-start如果参数 start 与 stop 相等,则该⽅法返回的就是⼀个空串,如果 start ⽐ stop ⼤,那么该⽅法在提取⼦串之前会先交换这两个参数。
⽰例:<script type="text/JavaScript">var str="Hello world!";console.log(str);console.log(str.substring(3,9)); //从第三个字符开始到第⼋位</script>⽅法2:使⽤substr()substr()⽅法可在字符串中抽取从 start 下标开始的指定数⽬的字符。
语法:substr(start,length)● start:要截取的⼦串的起始下标,必须是数值。
如果是负数,那么该参数从字符串的尾部开始算起的位置。
也就是说,-1 指字符串中最后⼀个字符,-2 指倒数第⼆个字符,以此类推,必需要写的● length:⼦串中的字符数,必须是数值。
如果不填该参数,那么返回的是字符串的开始位置到结尾的字符。
如果length 为0 或者负数,将返回⼀个空字符串。
⽰例:<script type="text/javascript">var str="Hello world!";console.log(str);console.log(str.substr(3,9)); //从倒数第六个字符开始,截取四位</script>⽅法3:使⽤split()split() ⽅法⽤于把⼀个字符串分割成字符串数组。
脚本精灵函数说明

目录1 脚本精灵控制条 (7)1.1 改变控制条状态 (7)1.1.1 展开态 (7)1.1.2 缩放态 (8)1.1.3 吸附态 (8)1.2 脚本管理 (9)1.2.1 二进制脚本 (11)1.2.1 明文脚本 (12)1.2.3 导入脚本 (13)1.2.4 退出脚本管理面板 (14)1.3 播放脚本 (14)1.3.1 开始播放 (14)1.3.2 播放一次 (14)1.3.3 循环播放 (15)1.3.4 停止播放 (15)1.4 录制脚本 (15)1.4.1 开始录制 (15)1.4.2 停止录制 (16)1.4.3 保存脚本 (16)1.5 取素材 (16)1.5.1 全屏截图 (16)2 脚本精灵开发工具 (19)2.1 基本介绍 (19)2.1.1 开发工具介绍 (19)2.1.2 各组成部分介绍 (19)2.1.3 二进制脚本结构 (19)2.1.4 明文格式脚本 (20)2.2 工程管理 (20)2.2.2 删除工程 (21)2.2.3 脚本编辑 (21)2.2.4 图片路径 (21)2.3 远程设备管理 (21)2.3.1 远程导入脚本 (22)2.3.2 远程屏幕 (22)2.3.3 远程截图 (22)2.3.4 远程取色 (23)2.3.5 远程取坐标 (23)2.4 脚本编辑器 (23)2.4.1 关键字高亮 (23)2.4.2 脚本检错 (24)2.4.3 编译脚本 (24)3 脚本语言 (25)4 脚本精灵库函数 (27)4.1 基本函数 (27)4.1.1 触摸点击 (27)4.1.2 触摸按下 (27)4.1.3 触摸弹起 (28)4.1.4 触摸滑动 (29)4.1.5 输入文本 (30)4.1.6 模拟按键 (31)4.1.7 获取颜色 (31)4.1.8 普通寻色 (32)4.1.9 模糊寻色 (33)4.1.10 RGB颜色合成 (34)4.1.11 获取颜色RGB (35)4.1.12 判断颜色 (36)4.1.13 精确寻图 (37)4.1.14 点击图片 (38)4.1.15 范围寻图 (39)4.1.16 模糊寻图 (40)4.1.17 范围模糊寻图 (41)4.1.18 不规则寻图 (43)4.1.19 范围不规则寻图 (44)4.1.24 获取屏幕色位 (49)4.1.25 弹出文本提示 (50)4.1.26 震动 (51)4.1.27 记录日志 (51)4.1.28 记录错误日志 (52)4.1.29 查找某应用是否安装 (53)4.1.30 判断某应用是否正在运行 (54)4.1.31 启动指定应用 (55)4.1.32 结束一个应用 (56)4.1.33 退出当前脚本 (56)4.1.34 获取SD卡路径 (57)4.1.35 截图到文件 (58)4.1.36 拷贝文本到剪切板 (59)4.1.37 暂停指定应用 (60)4.1.38 恢复指定应用的运行 (60)4.2 高级函数 (61)4.2.1 获取设备UDID唯一串 (61)4.2.2 获取网卡MAC (62)4.2.3 获取蓝牙设备MAC (63)4.2.4 获取IMEI (64)4.2.5 获取设备信息串 (65)4.2.9 随机触摸滑动 (70)4.2.10 http访问 (71)4.3 兼容模式相关函数 (71)4.3.1 强制设置兼容模式 (72)4.3.2 判断当前模式 (72)4.3.3 设置自定义截屏 (74)4.3.4 截取屏幕 (74)5 使用技巧 (77)5.1 如何模拟触摸操作 (77)5.2 如何寻图 (77)5.3 如何找色 (78)5.4 如何记录日志 (78)5.5 开发平台如何与手机建立连接 (78)5.6 如何进行远程调试 (78)5.7 如何输入中文文本 (79)5.8 脚本优化原则 (79)5.9 处理意外逻辑 (79)6 附录 (82)6.1 虚拟键对照表 (82)7 UI说明 (84)7.1脚本结构 (84)7.6创建文本编辑框 (87)7.7创建复选框 (88)7.8创建单选框 (88)7.9创建按钮 (89)7.10 UI换行 (90)7.11创建扩展窗口 (90)7.12在扩展窗口中创建控件 (90)7.13动态设置UI文本 (91)7.14动态获取UI文本 (92)7.15动态设置选中 (92)7.16动态获取选择状态 (92)7.17设置是否显示循环播放设置UI (93)8、获取配置项 (94)1 脚本精灵控制条为方便使用,脚本精灵所有的功能都集中在控制条上,控制条可任意拖动,缩小,吸附。
ScriptManager.RegisterStartupScript方法

ScriptManager.RegisterStartupScript方法如果页面中不用Ajax,cs中运行某段js代码方式可以是:Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>window.open('default2.aspx')</script>");如果页面中使用了Ajax ,则上述代码即使执行也无效果。
对这种情况我们通常采用:ScriptManager.RegisterStartupScript(this.Button1,this.GetType(), "alertScript", "window.open('default2.aspx');", true);其中第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。
第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.第三个脚本函数的名字,随便起。
第四个是脚本内容。
第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。
注意:aspx代码是这样的<div><asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate><asp:TextBox runat="server" ID="TextBox2"></asp:TextBox><asp:Button runat="server" Text="Button" ID="Button1" onClick="Button1_Click"/></ContentTemplate><Triggers><asp:PostBackTrigger ControlID="Button1" /></Triggers></asp:UpdatePanel></div>我在Button1_Click的事件里注册脚本,一定要加红色的部分,否则总是提示不能parse什么东西!另外,js无法干涉cs代码。
registerstartupscript参数

registerStartupScript参数什么是registerStartupScript参数?在编写Web应用程序时,我们经常需要在页面加载完毕后执行一些JavaScript代码。
这些代码可以用于初始化页面元素、绑定事件、调用API等等。
而registerStartupScript参数就是一种可以帮助我们在页面加载完毕后执行JavaScript代码的方法。
在中,registerStartupScript是Page类的一个方法,用于向客户端注册一段JavaScript代码,在页面加载完毕后执行。
通过registerStartupScript 方法,我们可以将JavaScript代码嵌入到生成的HTML页面中,从而实现在页面加载完毕后执行一些特定的操作。
registerStartupScript的语法registerStartupScript方法的语法如下:public void RegisterStartupScript(Type type, string key, string script, bool a ddScriptTags);参数解释: - type:指定脚本所属的类型。
通常传入this.GetType()即可。
- key:用于唯一标识脚本的字符串。
如果多次调用registerStartupScript方法并传入相同的key值,只有第一次的脚本会被执行。
- script:要注册的JavaScript代码。
- addScriptTags:指定是否在脚本前后添加<script>标签。
通常设置为true,以确保脚本能够正确执行。
registerStartupScript的作用registerStartupScript方法的作用是在页面加载完毕后执行一段特定的JavaScript代码。
这对于需要在页面加载完成后进行一些初始化操作的情况非常有用。
下面是一些registerStartupScript的常见应用场景:1. 初始化页面元素当页面中有一些需要通过JavaScript进行初始化的元素时,我们可以使用registerStartupScript方法来实现。
localhost:3000拒绝连接,npm:missingscript:start

localhost:3000拒绝连接,npm:missingscript:start使⽤express进⾏⾃动化创建的时候,3000端⼝打不开。
脚本确定没有问题。
教程上最后⼀步是直接在命令⾏输⼊:gulp 再在浏览器上输⼊:localhost:3000就可以连接。
然⽽我在输⼊gulp后没有报错,但是浏览器⼀直显⽰拒绝连接。
根据⽹上查询的资料,可能是没有添加app.listen(3000)这⼀句。
在脚本添加后仍然⽆法连接3000端⼝。
考虑到可能是服务器没有打开。
于是在根⽬录下执⾏:npm start报错:missing script: start经过排查发现必须在包含start设置的脚本的⽬录下执⾏才有效。
例如我的start设置在package.json中,⽽package.json在server⽂件夹下,所以我应当进⼊server⽬录后再执⾏npm start启动后提⽰:Port 3000 is already in use但是通过netstat -ano | findstr: 3000命令没有找到占⽤3000端⼝的程序。
最后发现是脚本中设置监听端⼝的语句出现了两次:⼀次是app.listen(3000),⼀次是server.listen(3000)删除app.listen(3000)这条语句后,重新执⾏npm start,再打开浏览器就可以连接3000端⼝了。
总结:3000端⼝拒绝连接原因可能出现在两个⽅⾯:⼀是服务器没打开,⼆是3000端⼝被占⽤在本次问题的解决中,打开服务器要使⽤npm start命令,直接gulp不管⽤。
3000端⼝被占⽤却找不到占⽤程序是因为在脚本中设置了两次listen语句,删除其中⼀条即可。
另外npm报错:missing script: start如果在脚本中已设置:"scripts": {"start": "node ./bin/www"},那么很有可能是执⾏命令的⽬录不对。
script标签的用法

script标签的用法一、script标签的基本用法1. 在HTML中插入JavaScript代码在HTML中使用script标签可以插入JavaScript代码。
可以将script标签放置在HTML文件的<head>或<body>标签中,通常将其放置在<body>标签的底部,以确保页面的其他内容能够加载完毕后再加载JavaScript代码。
例如:<!DOCTYPE html><html><head><title>Script标签的用法</title><script>// JavaScript代码function sayHello() {console.log("Hello, World!");}</script></head><body><h1>Script标签的用法</h1><button onclick="sayHello()">点击按钮</button></body></html>在上述代码中,<script>标签中的JavaScript代码定义了一个名为sayHello的函数,当点击按钮时会调用该函数,在控制台输出”Hello, World!“。
2. 引入外部JavaScript文件除了在HTML中直接插入JavaScript代码,还可以通过script标签引入外部的JavaScript文件。
这种方式有助于将代码逻辑和HTML内容分离,使代码更易于维护和管理。
例如,假设有一个名为script.js的外部JavaScript文件,可以通过以下方式在HTML中引入:<!DOCTYPE html><html><head><title>Script标签的用法</title><script src="script.js"></script></head><body><h1>Script标签的用法</h1><button onclick="sayHello()">点击按钮</button></body></html>上述代码中,<script>标签的src属性指定了外部的JavaScript文件路径,浏览器会根据该路径加载并执行JavaScript代码。
React,TypeScript,CSSModule,Less,Antd遇到的坑

React,TypeScript,CSSModule,Less,Antd遇到的坑序因为React 本⾝的脚⼿架⾃⾝在webpack中已经做了对CSS Module 的配置,因最近遇到了很多坑,所以从头整理了⼀遍使⽤版本"react": "^16.13.1","antd": "^4.4.0","typescript": "~3.7.2","webpack": "4.42.0","less": "^3.11.3","less-loader": "5.0.0",⼀. 安装和初始化---React and TypeScript请确保电脑上已经安装了最新版的或者。
使⽤ yarn 创建项⽬。
$ yarn create react-app antd-demo-ts --template typescript如果你使⽤的是 npm(接下来我们都会⽤ yarn 作为例⼦,如果你习惯⽤ npm 也没问题)。
$ npx create-react-app antd-demo-ts --typescript然后我们进⼊项⽬并启动。
$ cd antd-demo-ts$ yarn start⼆. CSS Module的使⽤1.在src⽬录下新建 css/index.module.css ⽂件.red{color: red;}2. 打开APP.tsx ⽂件新增以下代码 import React from 'react';import styles from './css/index.module.css'function App() {return (<div className="App"><header className="App-header"><img src={logo} className="App-logo" alt="logo" /><div className={styles.red}>哈哈啊哈</div></header></div>);}export default App;3. 你会发现style代码可以通过Js⽅式来使⽤,棒棒的4. 因为React脚⼿架⾃⾝⽀持.css, .Scss, .Sass ⽂件做了配置,所以如果有⽤scss的⼩伙伴可以直接使⽤scss,如想使⽤less,可查看后⾯5. 在src⽬录下新建 css/index.module.scss ⽂件,App.tsx 中引⽤,发现报错以下,提⽰需要安装Sass⽂件/src/css/index.module.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-6-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--6-oneOf-6-3!./node_modules/sass-loader/dist/cjs.js??ref--6-oneOf-6-4!./sr To import Sass files, you first need to install node-sass.Run `npm install node-sass` or `yarn add node-sass` inside your workspace.Require stack:5. 安装Sass和node-sass`npm install node-sass` or `yarn add node-sass`三. Less的使⽤----打开隐藏的webpack配置⽂件1. 查看webpack内部配置npm run eject2. 如果发现报错以下信息,表⽰你需要上传到git上⾯后再进⾏eject操作This git repository has untracked files or uncommitted changes:.CFUserTextEncoding.DS_Store.ShadowsocksX/.Trash/.android/.ant-devtool.json.anyproxy/.bash_history.bash_profile.bash_sessions/.cocoapods/.config/.fancy/.gitconfig.kaitian/.lesshst.local/.mysql_history.node-gyp/.npm/.npminstall_tarball/.nvm/.putty/.rncache/.sh_history.ssh/.taro/.taro2/.v8flags.7.0.276.38-node.19.e8d369a76bd6a0858b87990e6b1a3cfd.json.viminfo.vscode-react-native/.vscode/.vue-cli-ui/.vuerc.vuxrc/.wallaby/.yarnrcApplications/Desktop/Documents/Downloads/Library/Logs/Movies/Music/Pictures/Public/UI/WeChatProjects/gulpfile.js"iCloud \344\272\221\347\233\230\357\274\210\345\275\222\346\241\243\357\274\211/"image/mysql/workSpace/"\344\277\241\346\201\257\350\265\204\346\226\231/""\345\216\237\345\236\213/""\351\241\271\347\233\256\346\226\207\344\273\266/"Remove untracked files, stash or commit any changes, and try again.npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! react-demo@0.1.0 eject: `react-scripts eject`npm ERR! Exit status 1npm ERR!npm ERR! Failed at the react-demo@0.1.0 eject script.npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:3. 在webpack中可以看到,webpack中已经配置了 CSS, SCSS, SASS 的Module,后续⽆需⾃⼰配置,4. 如果你想使⽤Less还需要⾃⼰去配置,以下是Less的操作步骤四. 安装 Less 和 Less-loader使⽤ yarn$ yarn add less less-loader或者使⽤ npm$ cnpm i less less-loader五. webpack中配置Less1. 在第⼆步的时候我们已经打开了config中webpack的配置,打开 config ⽂件夹,修改 webpack.config.js2. 搜索 cssRegex ,找到后添加两⾏代码const cssRegex = /\.css$/;const cssModuleRegex = /\.module\.css$/;const sassRegex = /\.(scss|sass)$/;const sassModuleRegex = /\.module\.(scss|sass)$/;const lessRegex = /\.less$/;const lessModuleRegex = /\.module\.less$/;3.修改 getStyleLoaders 函数,添加代码// common function to get style loadersconst getStyleLoaders = (cssOptions, lessOptions, preProcessor) => {const loaders = [isEnvDevelopment && require.resolve('style-loader'),isEnvProduction && {loader: MiniCssExtractPlugin.loader,options: shouldUseRelativeAssetPaths ? { publicPath: '../../' } : {},},{loader: require.resolve('css-loader'),options: cssOptions,},{loader: require.resolve('less-loader'),},{// Options for PostCSS as we reference these options twice// Adds vendor prefixing based on your specified browser support in// package.jsonloader: require.resolve('postcss-loader'),4. 搜索 cssRegex ,在 css 配置下添加 less 配置 {test: cssRegex,exclude: cssModuleRegex,use: getStyleLoaders({importLoaders: 1,sourceMap: isEnvProduction && shouldUseSourceMap,}),// Don't consider CSS imports dead code even if the// containing package claims to have no side effects.// Remove this when webpack adds a warning or an error for this.// See https:///webpack/webpack/issues/6571sideEffects: true,},// Adds support for CSS Modules (https:///css-modules/css-modules)// using the extension .module.css{test: cssModuleRegex,use: getStyleLoaders({importLoaders: 1,sourceMap: isEnvProduction && shouldUseSourceMap,modules: true,getLocalIdent: getCSSModuleLocalIdent,}),},{test: lessRegex,exclude: lessModuleRegex,use: getStyleLoaders({importLoaders: 1,sourceMap: isEnvProductionshouldUseSourceMap: isEnvDevelopment,},'less-loader'),sideEffects: true,},{test: lessModuleRegex,use: getStyleLoaders({importLoaders: 1,sourceMap: isEnvProductionshouldUseSourceMap: isEnvDevelopment,modules:{getLocalIdent: getCSSModuleLocalIdent, },},'less-loader'),},5. 保存后,重新启动项⽬6. 在src⽬录下新建 css/index.module.less ⽂件.red{color: yellow;}7. App.tsx 修改import React from 'react';import logo from './logo.svg';import styles from './css/index.module.less'function App() {return (<div className="App"><header className="App-header"><img src={logo} className="App-logo" alt="logo" /><div className={styles.red}>哈哈啊哈</div></header></div>);}export default App;8. 提⽰:index.module.less 找不到模块解决:修改 src/react-app-env.d.ts ⽂件,新增⼀下代码,到底部declare module '*.module.less' {const classes: { readonly [key: string]: string };export default classes;}9. 坑⼜来了, 提⽰使⽤less-loader与API模式不匹配的options对象初始化的Loader更少。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#!/bin/csh
setenv GENESIS_EXPOSE_MODE YES
参见0203.pdf第二章环境变量的说明。
作用在于为了方便运行于某些X终端上
# Define correct temp. dir. depending on env. vars.定义临时目录,随环境变量而变
if ($?GENESIS_TMP) then
set TMP = $GENESIS_TMP
else if ($?GENESIS_DIR) then
set TMP = $GENESIS_DIR/tmp
else
set TMP = D:/genesis/tmp
endif
# Detect current operating system.提取当前操作系统
set CURR_OS = `uname -s`
uname –s 为UNIX/Linux命令,用来取得当前操作系统的名称
# Set the INFO alias and the tmp INFO file. 设置INFO临时文件和INFO的别名命令DO_INFO
set IFILE = $TMP/do_info.$$
$$为脚本运行随机产生的唯一的进程号,作用在于不会与其他文件名同名
alias DO_INFO 'COM info,out_file=$IFILE,write_mode=replace,args= \!:* ; source $IFILE; rm $IFILE'
作用在于用DO_INFO替代繁杂的info命令过程,info命令为Genesis提供的提取相关信息的指令,比如提取拼版数据等Info命令参见0204.pdf第六章
# If working on NT machine, set awk, sort and find aliases.
如果运行在WindowsNT架构类系统上,定义AWK、SORT、FIND等命令指向对应的Windows版本的程序,提高兼容性if ($CURR_OS == "WINDOWS_NT") then
alias dbutil '${GENESIS_DIR}/e${GENESIS_VER}/misc/dbutil \!:*'
DBUTIL为Genesis料号路径提取命令,参见0203.pdf第四章
alias bc '${GENESIS_DIR}/e${GENESIS_VER}/misc/gbc'
使BC命令指向GBC,提高Windows下的兼容性
alias ls 'c:/usr/local/bin/ls'
定义LS命令所在位置
alias diff 'c:/usr/local/bin/diff'
定义DIFF命令所在位置
alias rm 'c:/usr/local/bin/rm'
定义RM命令所在位置
alias sed 'c:/usr/local/bin/sed'
定义SED命令所在位置
alias awk 'c:/bin/awk95'
定义AWK命令所在位置
alias sort 'c:/usr/local/bin/sort'
定义SORT命令所在位置
alias find 'c:/usr/local/bin/find'
定义FIND命令所在位置
alias mkdir 'c:/usr/local/bin/mkdir'
定义MKDIR命令所在位置
# Modify if tclsh80.exe is found elsewhere or if wish_start.tcl has been modified
setenv TCSHSUBSTHB "/usr/local/bin/wish c:/progra~1/tcl/bin/tclsh80.exe;"
endif
# Set up alias for using bc in numeric calculations (this MATH alias can be used in the same way as "set" and "@" are used). 创建bc数字运算的别名命令(这MA TH别名命令可跟set和@命令一样使用)
alias MATH 'set \!:1 = `echo "\!:3-$" | bc -l`'
\!:1 意思是套用执行历史命令里的第一个命令
\!:3-$意思是套用执行历史命令里的第三个到最后一个命令
bc用法参见附件bc.htm
alias RESET 'source $GENESIS_DIR/sys/scripts/reset'
exit。