shell脚本备忘

0、在shell中可以写多行,执行后,再次执行历史命令,就会变成一行,自动用;分割语句。

0.1 数字比较 if test 3 -gt 2 #gt/lt/eq/ne/ge/le  greater than/less than/equals/not equals/greater equals

0.2 文本比较 =/!=/-z 长度为0/-n 长度不为0

0.3 逻辑运算 &&  ||   

0.4 运算

val=`expr 2 + 2`
for i in {1..3}; do echo `expr $i \* $i`; done  #*比较特殊,需要加转义符

1、if [ -f /c/log.txt ] ; then echo abc; fi  #注意分号的位置,每个分号分割一条语句。#注意文件路径,必须是linux分割符

      if [ -f /c/log2.txt ] ; then echo ; elif [ -f /c/log2.txt ];then echo elif; else echo else; fi #注意,只有else后面的语句不用加then

2、for i in {1..3}; do echo $i; done;

3、if [ -f /c/log2.txt ] ; then echo ; elif [ -f /c/log2.txt ];then echo elif; else for i in {1..3};do echo $i;done ; fi

4、for i in {1..30}; do echo $i:; curl 127.0.0.1:3333/add -s; echo; sleep 2; done;

5、echo -e "abc\ndef"    #-e表示启用解释反斜杠转义
echo -n "abc"  #echo本身默认最后会输出一个换行,要禁用最后的换行,可使用-n

echo  功能说明:显示文字。
语   法:echo [-ne][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数:-n 不要在最后自动换行
 -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;

\v 与\f相同;
\\ 插入\字符;

6、判断字符串 startwith

if [[ $1 == "/"* ]]
then
 WORKSPACE=$1
else
 WORKSPACE=$SCRIPT_DIR/$1
fi

7、执行命令并获取结果,2种写法

echo `pwd`

echo $(pwd)

8、grep反选,cut使用 ] 分割,并输出第三列,sort排序,uniq去重

cat type.txt |grep -v 'msgType : 100\]'|grep -v 'msgType : 1\]'|grep -v 'msgType : 0\]'|cut -d ']' -f 3|sort|uniq
 - The message type is 3, the message is: [msgType : 3
 - The message type is 31, the message is: [msgType : 31
 - The message type is 7, the message is: [msgType : 7

1、grep

grep -rl F065 .         //在当前目录所有文件中,递归找关键字 F065,并列出文件名。 参数l-list filename, 参数-r 递归查找

grep -rn F065 .    // -n 这个参数更好用,显示出每个文件,匹配的行数,以及匹配的文本信息

grep -rn F056    // 不写,写 .    写 * 都可以           也可以写 */*.groovy   只搜索二级目录      写 *.*  只搜索一级目录

2、for循环和if  注意分号

for i in {1..9}; do cksum out/${i}.txt out2/${i}.txt ;done

if (91>2); then echo pp; fi

3、vim 显示行号  /set number

4、vim搜索

      /abc.*aa      正则   搜到后 n 和 N 来找下一个或上一个

      光标放到首字母,shift+*,搜索这个单词,搜到后 n 和 N 来找下一个或上一个

5、cat xx | grep abc -A 5  //After   Before  Contain

6、sftp -P 4502 lcm-external@10.93.48.197

7、egrep 'str1|str2|str3' filename

8、grep -n -v ^92 gaofeng.txt     -n 输出行号 -v 反向选择  ^行首

9、cat 2.txt |egrep -o "alarmtitle.*position" > 4.txt   -o表示只显示匹配的字符串

10、cat 4.txt|sort|uniq|wc     先排序,再去重

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值