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 先排序,再去重