大侠去哪儿

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

 shell语法细节总结如下:

1. awk使用shell变量, 需要用双引号和单引号括起来"'$xxx'"

2. read和管道不能共存。管道前的数据也被当作标准输入,下面语句的read读到的是管道的数据:

for xxx in `yyyy|zzzz`

do

    read input

done

3. read按行读文件会自动丢失文件中制表符和行首空格。 read -r可保留制表符。

4. if的-z,-n判断需要带双引号

if [ -n "$possable_name" ]

5. 赋值语句“=”前后不能有空格,否则会被shell当作命令去执行

6. echo 一个shell变量,最好带双引号,否则shell会忽略变量里的空格和制表符 

 

 

杀死所有sleep

 
#!/bin/sh
# desc, ip, port, user, pwd
src="db_list.txt"

cat $src|grep -v '^$'|awk '{printf("[%s]%s\n", NR, $0)}'
echo "Enter db number:"
read number
host=`cat $src|awk '{if(NR=="'$number'") print $2}'`
port=`cat $src|awk '{if(NR=="'$number'") print $3}'`
user=`cat $src|awk '{if(NR=="'$number'") print $4}'`
passwd=`cat $src|awk '{if(NR=="'$number'") print $5}'`

mysqladmin processlist -u"$user" -p"$passwd" -h"$host" -P"$port" | grep -i sleep | awk '{print $2}'|xargs -n 1 mysqladmin -u$user -p$passwd -h$host -P$port kill
posted on 2019-09-22 17:58  大侠去哪儿  阅读(154)  评论(0编辑  收藏  举报