
SHELL
ace_fei
调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。
展开
-
博客迁移至github pages
优快云早已变味,以后新文章,请到https://acefei.github.io/上浏览! 如有任何问题,可以在acefei’ lobby上一起交流学习。原创 2017-11-21 17:19:03 · 691 阅读 · 0 评论 -
各种编程语言中屏蔽代码块
1. bash:<<EOFecho "This is content block"EOF2.perl=blockprint "This is content block"=cut3.python'''print "This is content block."'''4.c/c++#if 0cout << "This is cont原创 2012-09-14 16:41:17 · 1700 阅读 · 0 评论 -
gvim 多标签页打开
编辑gvim.reg文件Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\Edit with Vim]@="用 gVim 多标签编辑(&g)"[HKEY_CLASSES_ROOT\*\shell\Edit with Vim\command]@="\"D:\\Program Files\\Vim\\v原创 2012-09-04 17:41:42 · 2338 阅读 · 0 评论 -
你应该知道的linux命令 — lsof
lsof命令是什么? 可以列出被进程所打开的文件的信息。被打开的文件可以是 1.普通的文件,2.目录 3.网络文件系统的文件,4.字符设备文件 5.(函数)共享库 6.管道,命名管道 7.符号链接 8.底层的socket字流,网络socket,unix域名socket 9.在里面,大部分的东西都是被当做文件的…..还有其他很多 怎样使用lsof 这里主要用案例的转载 2012-08-02 11:34:11 · 877 阅读 · 0 评论 -
python和bash中的IO重定向
在测试的时候,偶尔需要捕获函数的输出,如果函数运行到最后才输出的话,直接把print换成return就好了但是函数在运行中,也会输出很多日志,我们需要把它都捕获下来,这时就需要用到IO重定向。bash #!/bin/bashfunc (){ echo "func output."} exec 6>&1 # 将fd6与stdout链接起来, 保原创 2012-08-16 14:33:01 · 1737 阅读 · 0 评论 -
awk中使用shell的环境变量
原文摘自: http://king9527.blog.51cto.com/84461/476262一:"'$var'"这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:var="test"awk 'BEGIN{print "'$var'"}'这种写法其实际是双括号变为单括号的常量,传递给了awk.如果var中含空格,为了shell不把空格作为分格符,便转载 2011-09-13 14:21:22 · 714 阅读 · 0 评论 -
在shell中调用sed中替换斜杠的问题
工作中,经常试用shell调用sed命令做匹配替换工作。我们知道替换用s///这样的格式,如果pattern中包含斜杠,就需要转义。如果不想转义,就可以使用s### ,s::: 之类的来替换。但是,如果我们在替换之前想匹配一下,发现只能用//来匹配,怎么办?比如 sed -n ‘/'$pattern'/s/a/b/p' filename,shell变量$pattern中包原创 2012-07-13 14:19:24 · 9225 阅读 · 1 评论 -
如何用expect读文件
之前我写expect脚本喜欢在bash中嵌入here-document来实现,因为这样往expect脚本中传shell变量比较方便。结果最近发现有个问题,当我用while读文件的时候,变量值全部为空。这是因为here-document中把变量当作是bash的变量,而不是expect中的变量。所以在shell中嵌入expect的话,需要用转义屏蔽bash的变量。(记住,如果想用she原创 2012-07-13 12:41:20 · 9172 阅读 · 1 评论 -
Linux删除乱码文件
1、通过ls -i命令获取文件的节点号$ll -itotal 1890827906753 -rw-rw-r-- 1 fesu cc_rdr_mxranc 9 Jul 13 11:59 "2、通过find命令删除文件$find . -maxdepth 1 -inum 27906753 -delete原创 2012-07-13 14:51:37 · 676 阅读 · 0 评论 -
bash中$@和$*的区别(数组${list[@]}和${list[*]})
$cat 1.sh#!/bin/bashfor i in "$@"; do echo $i;done for i in "$*"; do echo $i;done declare -a list=(1 2 3 4 5)for i in "${list[@]}"; do echo $i;donefor i in "${list[*]}"; do echo $i;done原创 2012-06-27 16:43:55 · 4489 阅读 · 0 评论 -
在linux下自动接收outlook的邮件
由于公司需要跟合作方之间传输一些数据,但是合作方无法登录我们的服务器,最后决定所有数据走邮件。 公司服务器: 通过SMTP服务器发送数据(用perl写个发送邮件的脚本即可) 合作方服务器: 需要安装davmail,fetchmail,procmail,metamail来接收邮件。 davmail 就需要配置几个地方 1. Main下面:OWA (Exc原创 2012-05-09 17:17:28 · 7142 阅读 · 0 评论 -
[总结]find的一些用法
我在csh下使用find的时候,搜索路径写成/path,搜索不到结果,需要写成/path/才行。1.查找文件find . -name "a"2.查找目录find . -type d -name "a"查找目录时,最好将 . 换成 ./* ,这样在查找目录的时候不会将 . 也给显示出来。3.查找除a以外的所有目录find . -type d !原创 2011-03-29 22:59:00 · 1590 阅读 · 0 评论 -
expect和shell变量互传
#!/bin/bashinput=$1output=`expect <<EXPlog_user 0puts $inputEXP`echo $output原创 2012-11-13 18:12:50 · 8336 阅读 · 0 评论 -
adb server is out of date. killing...
[html] view plaincopyC:\Users\xxxx>adb start-server adb server is out of date. killing... ADB server didn't ACK * failed to start daemon * adb 不管执行 shell devices 还是log转载 2013-05-02 09:42:19 · 1315 阅读 · 0 评论 -
如何自动化测试图形化程序
在自动化测试中,经常会遇到一些程序需要运行在X windows环境下。 通常我会在shell脚本中用以下方法来运行脚本:setup_vnc(){ # start vnc number from 10 to avoid confilct with the exists. VNC_DISPLAY=10 while ! vncserver :$VNC_DISPLAY d原创 2017-03-03 10:27:14 · 1393 阅读 · 0 评论 -
prompt设置
公司的系统管理员给我创建用户用的是csh,但是我平时喜欢用bash。但是又不能用root账户修改passwd文件,所以只好将.cshrc的内容改为(如果启动后是ksh,则修改.profile的内容,ksh设置环境变量用的是export) if ($SHELL == /bin/csh) thensetenv SHELL /bin/bashexec $SHELLelseexec $S原创 2011-03-17 17:30:00 · 5925 阅读 · 0 评论 -
Trap in bash
What’s the trap commandThe trap command provides the script to captures an interrupt (signal) and then clean it up within the script.trap [-lp] [arg] [sigspec …]The commands in arg are to be read and e原创 2016-01-31 22:26:58 · 709 阅读 · 0 评论 -
Automation UI testing with VNC
If we’d like to test with UI program that needs a display available, this is handy to run an VNC session during the testing.Getting Started with VNC1 Setup a vnc servervncserver :1 If you haven’t run原创 2016-01-31 21:37:10 · 894 阅读 · 0 评论 -
expect error invalid command name
Square Bracket protection in tcl原创 2015-06-15 15:08:29 · 18010 阅读 · 0 评论 -
Top Ten Reasons not to use the C shell
======================================================================Top Ten Reasons not to use the C shell======================================================================Written by Bruce Barne转载 2014-11-19 17:14:10 · 759 阅读 · 0 评论 -
将here doc输出的内容保存到文件,当文件超过阈值,动态更新文件名
需求:1. sqlplus查询结果重定向到文件(脚本里我用cat代替),文件名格式 _ ,批号范围0000-9999;2. 当文件大于2M自动替换文件名(批号部分加1),分割时要求保证数据完整性。 我理解用sqlplus可以直接实现,但是我不会,只好用shell。一开始我准备用split命令来按大小分割(split -d -b 2M -a 4)查询结果的,但是发现它分割的结果原创 2015-03-06 21:59:15 · 678 阅读 · 0 评论 -
Oracle spool 用法小结
关于SPOOL(SPOOL是SQLPLUS的命令,不是SQL语法里面的东西。) 对于SPOOL数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句如: select taskindex||'|'||commonindex||'|'||tasktype||'|'||to_number(to_char(sysdate,'YYYYMMDD')) from ssrv_sendsms转载 2015-03-10 09:54:59 · 2525 阅读 · 0 评论 -
expect正则捕获返回结果
expect:expect -re "([0-9]*)([a-zA-Z]*)"send_user "num is $expect_out(1,string), string is $expect_out(1,string)"这里[0-9]*表示一个或多个数字,[a-zA-Z]*表示多个字母。()用于分组,它们分别存放在$expect_out(1,string)和$expect_out(2原创 2012-11-12 16:53:35 · 18281 阅读 · 0 评论 -
使用iperf时需要注意的问题
有时候 , 我们在用iperf测试流量发现sever端,收不到client发过来的包,没有任何输出。这时候,就需要检查一下,是不是client发包的packet size大于server上网卡设置的MTU值,比如说,在 client端,使用iperf -c x.x.x.x -u -p xxx 命令发包,默认packet size是1470,加上udp和ip头的长度28, 等于149原创 2014-02-19 14:47:19 · 15363 阅读 · 0 评论 -
计算时间差(date和perl实现)
#!/bin/bashcurrent_sec=`date +%s`get_time=$1get_time_sec=`date -d "$1" +%s`sec_diff=$((current_sec - get_time_sec))echo "Second difference is $sec_diff"day_diff=$((sec_diff / 86400))echo "原创 2011-12-28 12:38:01 · 5841 阅读 · 0 评论 -
关于代码中的密码维护
公司的域密码是统一管理,经常会提醒换密码,但是我在很多程序中都需要用到这个密码,每次换完密码后都要改很多地方。为了减少麻烦,其实只需把密码放到环境变量中,以后每次只用修改环境变量的值就好了。BASH/KSHexport MYPWD='DomainPWD'CSHsetenv MYPWD 'DomainPWD'下面是我常用语言读取环境变量的方法C/C++#i原创 2013-05-18 12:05:53 · 1061 阅读 · 0 评论 -
Howto: receive mail and save attachment with fetchmail, procmail and metamail
At work I recently had to set up a solution that periodically checks a POP3 account on our M$ Exchange wannabe mailserver, and saves the attachments to some folder for further processing. As I didn't转载 2012-05-09 12:14:52 · 2633 阅读 · 0 评论 -
Linux常见命令的列表
转自:http://blog.chinaunix.net/uid-21782158-id-21199.html那些有· 标记的条目,可以直接拷贝到终端上而不需要任何修改。所有的命令已在Fedora和Ubuntu下做了测试!转载 2012-04-10 10:36:51 · 614 阅读 · 0 评论 -
在solaris上用pkgadd安装软件时,如何指定安装目录
vi /var/sadm/install/admin/default把下面的basedir的default改称ask原创 2012-03-06 15:10:31 · 2522 阅读 · 0 评论 -
关于while read只执行一次的问题
转自:http://bbs.chinaunix.net/viewthread.php?tid=769040&extra=&page=1Q:下面的代码为何只执行了一次就退出了?seq 10 >filewhile read adoecho $a转载 2011-08-02 13:25:25 · 2585 阅读 · 0 评论 -
如何向expect 传入数组做参数
set i 0foreach d $argv {set disk($i) $dincr i}原创 2011-07-21 18:09:23 · 3635 阅读 · 0 评论 -
【总结】 获取一段文本的脚本
1. awk -v RS= '/keyword/' output 这个方法是用于获取含有关键字keyword段,前提是这一段前后都有空行分隔。2. sed -n '/start_key/,/end_key/p' output 这个方法用于知道每段的开头和结尾的关键字,获取原创 2011-07-12 11:33:34 · 887 阅读 · 0 评论 -
用shell 或者 awk 合并两个文件
awk NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]" "$0;j++} file1 file2 >file3awk NR==FNR{a[FNR]=$0;}NR>FNR{print a[FNR]" "$0;} file1 file2 >file3FNR,与NR功用类似,原创 2011-06-21 13:38:00 · 8198 阅读 · 0 评论 -
linux中用shell获取昨天、明天或多天前的日期
<br />linux中用shell获取昨天、明天或多天前的日期:<br />在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:<br /># -d, --date=STRING display time described by STRING, not `now’<br />[root@Gman root]# date -d next-day +%Y%m%d #明天日期<br />20091024<br />[root@Gman root原创 2011-04-25 09:52:00 · 643 阅读 · 0 评论 -
Unix系统cpio命令
<br />我们知道Unix系统Cpio命令用于复制需要多个磁带卷的文件、特殊文件或文件系统。或者,当要将文件从运行当前的 Solaris 发行版的系统复制到运行 SunOS 4.0/4.1 发行版的系统时使用。<br /> <br />为什么cpio比tar好?有这样几个原因。<br />1、cpio会保留硬连接(hard link),备份的时候这个很重要<br />2、cpio没有文件名长度的限制。确实,guntar在这一点上做过改进,允许使用长文件名(实际上是创建了一个临时文件用来保存实际的文转载 2011-04-11 12:26:00 · 816 阅读 · 0 评论 -
SSH登陆免密码
<br /> 比如A机器想免密码登录到B机器<br /> 1.在A机器上输入命令<br /> $/usr/bin/ssh-keygen -t dsa<br /> 它将生成密钥,在~/.ssh/id_dsa.pub中<br /> 2.在B机器上创建~/.ssh/authorized_keys文件,并将A机器的~/.ssh/id_dsa.pub内容拷贝到authorized_keys即可。<br />原创 2011-04-01 14:00:00 · 629 阅读 · 0 评论 -
取n天前或后的日期
<br />#n天前的日期<br />date -d 'n days ago' +%Y%m%d<br />date -d "-n day" +%Y%m%d<br />#n天后的日期<br />date -d "+n day" +%Y%m%d转载 2011-03-29 22:22:00 · 813 阅读 · 0 评论 -
echo用法,显示百分比,进度等信息
进度例子echo -ne "/r/033[0;42m /033[0;44m/033[7;39m /033[0m 20%"<br />sleep 1<br />echo -ne "/r/033[0;42m /033[0;44m/033[7;39m/033[0m 100%" 其中-ne 表示不换行,并支持特殊字符;033[0;42m 其中[0 表示转载 2011-03-29 22:18:00 · 4684 阅读 · 0 评论 -
[总结]如何编写自解压脚本(脚本中嵌入二进制文件)
今天接手新的模块开发时,发现他们给我的归档脚本中有很多乱码,但是也能正常执行。 我上网查了下,发现他们是在shell脚本中嵌入二进制字符。这样就可以在运行脚本时将二进制代码导出成一个程序,再执行。 于是我决定扩展一下,写个自解压脚本,在此之前,我们先来看学习下uudecode/uuencode命令。 uuencode 将二进制文件进行编码,编码后的资料都以 begin 开始,以 end 作为结束。 uudecode 将 uuencode 编码后的档案还原, uudec原创 2011-05-13 10:51:00 · 2400 阅读 · 0 评论 -
Emacs 正则表达式简介(From 水木清华)
Emacs 正则表达式简介(From 水木清华) 发信人: dddkk (进化的鱼), 信区: Emacs标 题: Emacs 的正则表达式发信站: BBS 水木清华站 (Thu Mar 18 20:11:52 2004), 转信两年多以前翻译的,就是转载 2011-08-31 14:00:03 · 3857 阅读 · 0 评论