读取文件每一行
1 | !/bin/bash |
变量自增
写循环时,常常要用到变量的自增,现在总结一下整型变量自增的方法:
1 | i=`expr $i + 1` |
字符串去空格
(1)去行首空格
sed 's/^[ \t]*//g'
(2)去行尾空格
sed 's/[ \t]*$//g'
(3)去所有空格
sed 's/[[:space:]]//g'
shell参数扩展
如果parameter为null或者未设置,整个参数替换表达式值为word
1
${parameter:-word}
如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word
1
${parameter:=word}
如果parameter为null或者未设置,则打印出错误信息。否则,整个参数替换表达式值为$parameter
1
${parameter:?word}
如果parameter不为null或者未设置,则整个参数替换表达式值为word
1
${parameter:+word}
- 获得字符串的长度
1
${#parameter}
从尾开始扫描word,将匹配word正则表达式的字符过滤掉, %为最短匹配,%%为最长匹配
1
2${parameter%word}
${parameter%%word}从头开始扫描word,将匹配word正则表达的字符过滤掉, #为最短匹配,##为最长匹配
1
2${parameter#word}
${parameter##word}截取字符串,截取parameter的值的子字符串
1
2${parameter:offset} 从offset到结束
${parameter:offset:length} 从offset开始截取length个字符串替换,将parameter对应值的pattern字符串替换成为string字符串, /表示只替换一次,//表示全部替换
1
2${parameter/pattern/string}
${parameter//pattern/string}
Supervise进程监控
supervise 监控进程,如果挂了,重启进程
1 | -p, 状态路径,supervise运行时会在该路径下保存一些文件 |
示例:
1 | supervise -p ../supervise/status/hdfs-dumper -f "sh ./control.sh start" -F ../supervise/conf/supervise.conf |
远程操作
1 | #!/bin/bash |
远程同步文件
1 | #!/bin/bash |
switch case
1 | cmd=$1 |