Xshell 真是好
抱歉 最近实在很忙 每天都研究很多技术问题 却没机会分享 等有时间的时候希望可以整理出来 在此之前就赞赞别的产品 或者骂一下没有节操的产品好了 自从三四年前我开始用 Xshell 就喜欢上了它 此前Netterm SecureCRT Putty 还有SSH官方出的都用过 但是都各自有一些缺陷 最近 Xshell 从4更新到了5 今天我发现 Xshell5 竟然已经支持自动更新 简直是太厉害了 各个终端能做到的它都能做到 还更漂亮 目前在 Windows 下的话 就用它吧
抱歉 最近实在很忙 每天都研究很多技术问题 却没机会分享 等有时间的时候希望可以整理出来 在此之前就赞赞别的产品 或者骂一下没有节操的产品好了 自从三四年前我开始用 Xshell 就喜欢上了它 此前Netterm SecureCRT Putty 还有SSH官方出的都用过 但是都各自有一些缺陷 最近 Xshell 从4更新到了5 今天我发现 Xshell5 竟然已经支持自动更新 简直是太厉害了 各个终端能做到的它都能做到 还更漂亮 目前在 Windows 下的话 就用它吧
最近在服务器上总发现一个叫on.lst的文件 每次删了很快就又出来 在google上搜索这个文件又搜索不到什么消息 今天才有时间调查了下 原来是有人的shell写的有点小问题 其中调用sqlplus的时候 来了个 spool on; 可是spool 后面只能接文件 如果不加扩展名oracle就会用默认的lst 最后就产生了一个on.lst的文件…… 就是这样 记得spool直接接文件 不用先on一下……
经常会用正则表达式验证输入的字符串是否匹配[0-9a-z]这样 可是如果可以是中文呢? UTF-8的情况下 [u4e00-u9fa5]就可以了 这是中文的编码范围 于是可以用[0-9a-zu4e00-u9fa5]判断有没有正常输入 貌似写的内容太少 不过我今天想 我经常遇到问题 如果不写下来 也许永远都不会写了 总结一篇长的通常要很久 平时很忙并没有那么多时间 那么我就每次写少点 遇到问题就写出来分享吧
经常看到有人迷惑于shell的比较 看到初学Linux的人写的简单shell一般都是if时出现各种错误 shell中的判断的确和一般的程序不太一样 如果你想仔细的研究这个问题 很简单 只需要在系统中man test 把test的帮助完全看懂就好了 这里我更简单的介绍下 给不想看英文帮助的人看 shell的比较是测试里的一类 测试还包括测试各种对象是否存在 他们全部返回一个bool值 大多在if的时候用 比较分为数值的比较和字符串的比较 数值的比较如下 -eq 等于 -ne 不等于 -gt 大于 -lt 小于 -le 小于等于 -ge 大于等于 比如要测试$1是否大于2就是 COUNT=3 if [ $COUNT –gt 2 ] then echo 'right' fi 注意方括号里边开始和结束各要空一个格 变量和比较命令之间也要空格 有时候错误就是空格引起的 至于有人会奇怪为什么这个比较这么奇怪 其实gt是greater than的缩写 其他以此类推 这下这命令好记了吧 ...
今天在AIX上写shell 将几个重复出现的段落提取出来做了个函数 让他们返回一个八位日期 function find_date { WORKDATE='20100101' return $WORKDATE } find_date echo $? 运行的时候 发现返回的值成了两位数… 于是查了查资料 原来返回值只有8位 于是最多到128 而shell的返回值一般只做出错标志来用 那我只能在函数里echo那个值了 然后用`函数`得到输出的值 function find_date { WORKDATE='20100101' echo $WORKDATE return 0 } DATE=`find_date` echo $DATE
前几天整理shell,将一个sqlplus语句移到了函数里,在AIX上,k-shell 如下: function a { sqlplus usr/pwd@sid <<! exit ! } 然后好好的语句就开始报错: test.sh: 0403-057 Syntax error at line 3 : `<‘ is not matched. 我开始以为是换行符的问题,或者是我手误在哪里输进去了个什么标点 结果查看了许久,都找不到什么错误的地方. 干脆写最基本的语句开始测试. 最终终于找到了让人哭笑不得的原因: 在shell里用«进入别的程序,结束标志不能缩进… 恍然大悟,我做的唯一改动就是把脚本整体右缩进了一个制表符呀. 以前还没留意过这个问题,我干脆写shell的函数不缩进了…