学用expect

很好的一个教程http://fanqiang.chinaunix.net/a4/b8/20010912/1000001278.html 完美解决expct问题(除了从服务器上拷贝多个文件到本地出问题,反过来则没有问题(用bash -c),scp的局限性?),后面的可以不用看了! http://blog.51yip.com/linux/1462.html 循环: #!/usr/bin/expect —for {set i 1} {$i < 10} {incr i 1} {    send_user “$i “} 每个括号都有空格!!! expect里的加减法 set i [expr {$i + 1}] linux expect自动登录ssh,ftp 张映 发表于 2012-09-07 分类目录: linux expect是一种能够按照脚本内容里面设定的方式与交互式程序进行“会话”的程序。根据脚本内容,Expect可以知道程序会提示或反馈什么内容以及 什么是正确的应答。它是一种可以提供“分支和嵌套结构”来引导程序流程的解释型脚本语言。 shell功能很强大,但是不能实现有交互功能的多机器之前的操作,例如ssh和ftp.而expect可以帮助我们来实现.   一,安装expect yum install expect 其实expect根bash形势上差不多的. 二,实例 1,ssh实现自动登录,并停在登录服务器上 查看复制打印?

gawk

http://fanqiang.chinaunix.net/program/shell/2005-03-30/3068.shtml gawk -v “gawk_keyword=$keyword” ‘BEGIN{FS=” “;RS=gawk_keyword;i=0};{i++};END{print i}’ input_file` -v可以让gawk识别各种转意字符如\t,\n

Python

1、 apply(function, args[, keywords])function得是函数、类等可以执行的东西,args得是sequence(如list),keywords是字典(如x=1,y=2) 例子:a(func,1,2,’hi’,x=3,y=”Hello!”),1,2,’hi’ 与function(*args, **keywords)等价,但此种用法从2.3之后不提倡 2、 subprocess.Popen Popen(*args)如果args是一串儿,那么第一个当做命令,后面的当参数   3、 re.compile(pattern, flags=0) http://kb.cnblogs.com/page/83394/ 搞正则表达式匹配的 Compile a regular expression pattern into a regular expression object, which can be used for matching using its match() and search() methods, described below. The

Linux Bash Shell if/else

if [ condition ]then     actionfi 注意:“if”和“[”之间需要空格,如果你不空格,shell会报告语法错误的。我就被这个浪费了好一阵时间 conditon测试类型对照表 运算符 描述 示例 文件比较运算符 -e filename 如果 filename存在,则为真 [ -e /var/log/syslog ] -d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ] -f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ] -L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ] -r filename 如果 filename可读,则为真 [ -r /var/log/syslog ] -w filename 如果 filename可写,则为真 [

struct timeval 和 struct timespec

timeval   DESCRIPTION   The functions gettimeofday and settimeofday can get and set the time as   well as a timezone. The tv argument is a timeval struct, as specified in <sys/time.h>:        struct timeval {         time_t tv_sec; /* seconds */         suseconds_t tv_usec; /* microseconds */   };         其中返回的timeval值为Epoch(00:00:00 1970-01-01 UTC)到创建struct timeval时的时间,tv_sec为秒数部分,tv_usec为微秒数部分(10的-6次方秒)。比如当前程序运行的tv_sec为1244770435,tv_usec为442388,即当前时间距Epoch时间1244770435秒,442388微秒。测试代码如下:   #include

关于bash

快捷键 http://ahei.info/bash.htm bash中的计算: echo “a+b”|bc echo “scale=1;a/b”|bc #保留小数点精度只对除法有效 echo “scale=6;s(1)/c(1)”|bc -l #注意!减号后面要加空格!!!  6 ) 小数的比较(不等式成立则返回1否则返回0) a=12.34 b=23.45 echo “a<=b” |bc` 1 放在变量中的环境变量: ${!algorithm_path_var} 注意!!! 千万不要把一个无需直接调用的文件设成可执行,并放在$PATH的文件夹里! 例如,某个PATH中的文件夹里有一个”env.sh”并被设置为可执行,那么在另一个文件夹内调用“source env.sh”时,被执行的将是PATH中的“env.sh”而非本地的!!! 这个行为很怪异,不理解原因。曾经因此而耗费过半天时间debug(and fucking twice!!)。 可以断点续传的上传程序 rsync -rPvh –progress result/signal.160209.root wuchen@133.1.141.121:/dybfs/comet/common/wuc/MyWorkArea/Storage/MyFramework/Simulate/comet/data 总结序列 uniq -c总结队列 qstat