在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.解决的问题 当你需要一次输入很多个命令的时候,例如一次去多个目录删除文件 复制代码 代码如下: cd dir1 rm file1.temp cd ../../dir2 rm -rf dir3 当你懒得输入一个好长的命令或者直接就记不住那么长的命令的时候,例如生成ctags ctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --exclude=out -R -f .tags 当你想要个类似快捷键来一键搞定重复的事情又懒得写好多脚本的时候, 2.感性认识 这个工具是个shell脚本,附在本文末尾,复制整个脚本源码,在本地保存为rew.sh,放到$PATH下,加上chmod +x权限。 前面所说的复杂操作就变成了这么简单: 一次去几个目录删除文件,只需要rew.sh d 生成ctags,只需要rew.sh ct 如果忘了这个脚本有什么功能,只需要不带参数运行crt.sh就会列出所有的命令。 3.理性认识 如果想加入自定义的命令,找到 复制代码 代码如下: cmds=(xxxxx) 的地方,增加一行就可以了。每行就是一个参数和实际命令,可以看到: 复制代码 代码如下: # defines commands here,format: # shortcut|one space|action cmds=( 'w ninja -C out/Debug android_webview_apk' 'gyp build/gyp_chromium' 'd gdb -ex=r --args out/Debug/chrome --no-sandbox http://100.84.44.189' 'ct ctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --exclude=out -R -f .tags' # 'e echo example to show this can be commentted' 'r ninja -C out/Debug chrome_shell_apk' 'u updateChrome' 't testChromeShellMemory' 'o openUrlInCAWShell' ) 也就是,第一个空格前是rew.sh的参数(快捷键),第一个空格后是实际运行的命令。其中多个步骤的命令可以做成函数,例如: 复制代码 代码如下: updateChrome() { git pull cd third_party/WebKit git pull gclient sync --nohooks } 如果怕忘记长命令用来干什么,也可以放到函数里,函数名要见名知意或者加注释。 这个脚本可以被其它脚本调用,返回值和被代替的命令相同。 附工具脚本: 复制代码 代码如下: #!/bin/bash #author liuhx 2015/03/03 http://blog.csdn.net/hursing # if including multiple steps, combine them into function testChromeShellMemory() { openUrlInCAWShell() { # defines commands here,format: echoHelp() { if [[ $# -eq 0 ]]; then for ((i = 0; i < ${#cmds[@]}; i++)); do # if no cmd matched, echoHelp |
请发表评论