gzpk

随笔分类 -  shell

取消脚本进程之——后台进程
摘要:今天碰到一个问题,把一个正在运行的脚本取消,可是该脚本在后台起来的线程仍然在运行。简单测试了一下#!/bin/bashecho "Begin Test ..."(sleep 100)&(sleep 100)&(sleep 100)&wait echo "End Test ..."在脚本还在等待返回的... 阅读全文

posted @ 2016-01-15 11:28 gzpk 阅读(466) 评论(0) 推荐(0)

whoami与who am i
摘要:whoami显示的是当前“操作用户”的用户名,而who am i显示的是“登录用户”的用户名。若你使用root用户登录,中间su abc切换,whoami的结果是abc,who am i 的结果是root,这个点会导致比较隐蔽的错误。 阅读全文

posted @ 2015-11-24 09:32 gzpk 阅读(226) 评论(0) 推荐(0)

eval回显变量
摘要:eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量。一个应用场景如下:export path="/home/bin/"a="\$path/file1"echo $a会显示: $path/file1我们实际想得到的结果是:/home/bin/f... 阅读全文

posted @ 2015-09-16 16:14 gzpk 阅读(442) 评论(0) 推荐(0)

bash fifo管道使用测试例子
摘要:碰到一个场景:一个脚本内起了多个后台线程,往一个日志文件写日志,结果因为线程之间争抢写锁,导致脚本执行效率很低,为了解决这个问题,希望减少写锁的争抢,尝试使用fifo解决该问题,以下是实验用例子。#!/bin/bashfifo_file=fifo.pipemkfifo $fifo_fileexec ... 阅读全文

posted @ 2015-08-05 11:43 gzpk 阅读(745) 评论(0) 推荐(0)

Bash Shell字符串操作
摘要:转自:http://my.oschina.net/aiguozhe/blog/41557,并对内容作了验证修改。1. 取长度str="abcd"expr length $str # 4echo ${#str} # 42.查找子串的位置貌似也只有单个字符的时候可用。str="abc"e... 阅读全文

posted @ 2015-08-04 09:10 gzpk 阅读(437) 评论(0) 推荐(0)

ssh链接数设置问题
摘要:今天碰到一个问题,脚本执行scp文件拷贝,因为拷贝的服务器很多,所以拷贝脚本的实现是在把拷贝动作转后台执行,结果发现一堆文件拷贝失败。比较有迷惑性的是,拷贝失败的通常是同一个文件夹拷贝到所有服务器时失败,所以开头查问题的方向是专门查该文件,后来发现了输出终端的输出错误:ssh_exchange_id... 阅读全文

posted @ 2015-05-28 12:00 gzpk 阅读(10122) 评论(0) 推荐(1)

vim段替换
摘要:文件中有很多字段:dd ssdf df aaa="100"dd ssdf df aaa="200"asdf sdf sdf aaa="700"现在我就想替换dd ssdf df aaa="×××" 为dd ssdf df aaa="NUMBER"%s/\(dd ssdf df\) aaa=\"[0-... 阅读全文

posted @ 2015-05-18 18:02 gzpk 阅读(228) 评论(0) 推荐(0)

vim global命令
摘要:global命令格式: [range]global/{pattern}/{command}global命令在[range]指定的文本范围内(缺省为整个文件)查找{pattern},然后对匹配到的行执行命令{command},如果希望对没匹配上的行执行命令,则使用global!或vglobal命令。一... 阅读全文

posted @ 2015-04-14 10:54 gzpk 阅读(1438) 评论(0) 推荐(0)

gawk快速入门
摘要:基本定义:gawk 的主要功能是针对文本的每一行执行被指定的 actions。命令格式:gawk option program fileoption: -F 指定的分隔符,默认的分隔符是空格,可以指定多个分隔符,例如-F ":|;|.",就是以:或者;或者.为分隔符。 -f program fi... 阅读全文

posted @ 2015-04-03 15:07 gzpk 阅读(419) 评论(0) 推荐(0)

常用正则表达式
摘要:^ 行首$ 行尾^[ abc] 以a或b或c开头的行[Ss]igna[lL] 匹配单词signal、signaL、Signal、SignaL^ABC... 阅读全文

posted @ 2015-04-01 10:14 gzpk 阅读(167) 评论(0) 推荐(0)

一些简单的错误
摘要:1) 我们打算把文件夹test里面的内容打包成tar包test.tarcd test && tar -cvf test.tar *若test中无文件,上面脚本命令将报错。2) 同时输出到屏幕和重定向使用tee例如:echo “1000000000” | tee a.txt3) 在windows下修改... 阅读全文

posted @ 2015-03-25 13:48 gzpk 阅读(116) 评论(0) 推荐(0)

grep 相关
摘要:1) -q 参数,本意是 Quiet; do not write anything to standard output. Exit immediately with zero status if any match is found, even if an error was detected. ... 阅读全文

posted @ 2015-03-11 10:25 gzpk 阅读(173) 评论(0) 推荐(0)

字符串排序去重
摘要:有一个字符串:a="190.0.1 190.0.2 190.0.1"现在我要对其去重,去重可以用uniq,可是前提是先要排序,以下是实现:a=`echo $a | awk '{for (i=1; i<=NF; i++) print $i}' | sort |uniq`echo $a190.0.1 1... 阅读全文

posted @ 2015-03-05 17:16 gzpk 阅读(421) 评论(0) 推荐(0)

echo 换行不换行
摘要:echo换行输出需要转义符 -e看以下例子:1 echo -e "It is the first line." >> a; echo -e "It is the second line.\c" >> a; echo -e "It is the third line." >> a; echo -e "... 阅读全文

posted @ 2015-03-04 11:33 gzpk 阅读(13782) 评论(0) 推荐(0)

*在通配符及正则表达式中的差别
摘要:*在通配符和正则表达式中有其不一样的地方,在通配符中*可以匹配任意的0个或多个字符,而在正则表达式中他是重复之前的一个或者多个字符,不能独立使用的。比如通配符可以用*来匹配任意字符,而正则表达式不行,他只匹配任意长度的前面的字符。基本上解释就是通配符是系统命令使用(ls cp等),一般用来匹配文件名... 阅读全文

posted @ 2015-02-13 15:53 gzpk 阅读(453) 评论(0) 推荐(0)

管道导致的while循环体变量失效
摘要:1 #!/bin/sh 2 num=0 3 cat /etc/passwd | while read line 4 do 5 num=$(($num+1)) 6 done 7 echo $num 8 9 linux:~ # sh a.sh10 0原因:使用for,while,until... 阅读全文

posted @ 2015-02-11 20:04 gzpk 阅读(304) 评论(0) 推荐(0)

导航