Tag Archives: 脚本语言

same day payday loans Handy one-liners for awk

HANDY ONE-LINERS FOR AWK 22 July 2003 compiled by Eric Pement version 0.22 Latest version of this file is usually at: http://www.student.northpark.edu/pemente/awk/awk1line.txt USAGE: same day online payday loans Unix: awk ‘/pattern/ {print “$1”}’ # standard Unix shells DOS/Win: awk ‘/pattern/ … Continue reading

Posted in 脚本语言 | Tagged | 1 Comment

Shell中的[]

Shell中的[],没太搞明白,请高手指点。 ?View Code BASH  ricky@ricky-desktop:~$ a=0 ricky@ricky-desktop:~$ if [ $a ]; then > echo "Gooooood" > else > echo "Baaaaaaad" > fi Gooooood ricky@ricky-desktop:~$ a=1 ricky@ricky-desktop:~$ if [ $a ]; then echo "Gooooood"; else echo "Baaaaaaad"; fi Gooooood ricky@ricky-desktop:~$ a="string" … Continue reading

Posted in 脚本语言 | Tagged | 10 Comments

Learning Vim

最新发现的Vim里面的一些不太常用,但是非常强大的功能,包括列选定,分屏等等,学习并记录之。 这个思维导图来自于Joe Marinez的blog PDF版本下载 摘录下来从中学到的几个命令: Marking Text: v = start visual mode V = start linewise visual mode ctrl-v = start blockwise visual mode o = move to other end of marked area U = upper case of marked area … Continue reading

Posted in 脚本语言 | Tagged , | Leave a comment

Shell中读取文件

.!. .!. 在Shell中读取文件,一次一行进行处理。用for处理起来比较简单,但是如果一行中有空格分隔的话,那么处理起来如果把一行作为一个参数,用for就不行了,变通一下的做法有很多中,比如用awk。昨天在处理这个问题花了一点时间研究了一下shell读取文件的方法,如下: ?View Code BASH#!/bin/ksh   cat file1 | while read line do line2=`echo $line | sed ‘s/\*/\\\*/g’ ` # echo "$line2" grep "$line2" file2 > /dev/null a=$? grep "$line2" file3 >/dev/null b=$? # echo "a=$a,b=$b" if [[ $a … Continue reading

Posted in 脚本语言 | Tagged | Leave a comment

Linux/Solair对时间的处理

今天跟老铁在Solaris上调试一个小的脚本,最初的需求是希望用Shell来实现修改系统时间,随机提前N秒或者推迟N秒。这个在Linux中是非常容易做到的,因为Linux的date函数提供了一个–date选项,可以支持秒,分钟,小时,甚至天或者月的修改,用法如下。 1) 取之前的时间: date -d “a day ago” 取出前1天的系统时间 date -d “2 days ago” 取出前2天的系统时间 2) 取之后的时间: date -d “a day ” 取出1天后的系统时间 date -d “2 days” 取出2天后的系统时间 因为Linux下的date是基于GNU的,但是Solaris基于POSIX的时间函数并没有提供类似的功能,甚至连秒一下的单位都无法直接获得,而是要自己写函数获得微秒和毫秒。 那么如何利用Shell在Solaris中实现之前的需求呢。有这么几种方法来实现: 利用其它语言,比如Perl、Tcl或者python。还有就是利用时区,但是这个仅仅局限于小时的修改,精确到分钟或者秒就不行了: 1)取之前的时间:yesterday=`TZ=$TZ+3; date +%Y%m%d`; echo $yesterday 取出前1天的系统时间 yesterday=`TZ=$TZ+27; date +%Y%m%d`; … Continue reading

Posted in 脚本语言 | Tagged | 1 Comment

Unix高手的另外十个习惯

大家都知道著名的Unix高手的十个习惯,殊不知Unix高手还有另外十个习惯,呵呵,偶不是Unix高手,不过有几个习惯还是挺常用的,转载一下,IBM的网站上还是有很多好文章的。 您应当采纳的其他 10 个好习惯包括: * 使用文件名自动完成功能 (file name completion)。 * 使用历史扩展。 * 重用以前的参数。 * 使用 pushd 和 popd 管理目录导航。 * 查找大型文件。 * 不使用编辑器创建临时文件。 * 使用 curl 命令行实用工具。 * 最有效地利用正则表达式。 * 确定当前用户。 * 使用 awk 处理数据。 使用文件名完成 如果不需要在命令提示符处键入长的、令人费解的文件名,这是不是很棒呢?的确,您不需要这样做。相反,您可以配置最流行的 UNIX Shell 以使用文件名完成。该功能在各个 … Continue reading

Posted in 脚本语言 | Tagged | 1 Comment

sed中如何引用变量

最近写了一个系统资源监控的脚本,想让它每次机器重启后也可以自动启动,决定放到inittab中去,于是写了一个脚本run.sh,执行的时候启动脚本,并且加入inittab,可是调试的时候发现sed对shell的变量引用一直无法替换,百思不得其解,后来得到几位高手指点,终于解决,还有两种解决方法。 问题描述: 命令是这样的 work_dir=/home/ractest sed ‘/start_mon.sh/d /init.crsd/ a\ h4:3:respawn:${work_dir}/scripts/start_mon.sh >/dev/null 2>&1 ‘ /etc/inittab 想把work_dir替换,但是没成功。 sed “/start_mon.sh/d /init.crsd/ a\ h4:3:respawn:${work_dir}/scripts/start_mon.sh >/dev/null 2>&1 ” /etc/inittab 试过,报错 sed: command garbled: /init.crsd/ ah4:3:respawn:/home/ractest/ricky/atm_monitor/scripts/start_mon.sh >/dev/null 2>&1 在Solaris上不行,但是在Linux上是可以的,所以初步确定是sed版本的问题,但是在Solaris上怎么解决这个我呢?有如下两种方法: 方法一:使用单引号 单引号: sed ‘/start_mon.sh/d > /init.crsd/ a\ > … Continue reading

Posted in 脚本语言 | Tagged | 2 Comments

Shell综合水平测试

一直以为自己很喜欢shell,看了ChinaUnix上的这个水平测试,才知道原来自己什么都不是 🙁 [ OVERVIEW 篇 ] 1. 有很多种 shell, 你熟悉几种? 各个 shell 的 home page 在那里? 2. 为什么说 zsh 是目前为止功能最为强大的 shell. 3. 为什么说 pdksh 功能较弱? 4. ksh88 与 ksh93 有何区别? 5. 为什么 shell 编程最好用 ksh? 6. 你的系统都有哪些 shell? 版本是多少? 7. … Continue reading

Posted in 脚本语言 | Tagged | Leave a comment