今天初步学习了一下linux下的shell编程,简单记录一下测试用例
1.编辑shell脚本文件如下:
#!/bin/bash
echo "hello bash linux"echo "第0个参数:$0"echo "第一个参数:$1"echo "当前子shell进程:$$"#pidarr=`ps x | awk '{print $1}'`
pidarr=$(ps x | awk '{print $1}')echo $pidaddfor id in $pidarrdo echo "$id"done2.保存为文件test.bash
3.使文件具有执行属性,使用以下命令
chmod +x test.bash
示例脚本说明:
(1)第一行的#!/bin/bash 为脚本文件的固定格式,表示有bin目录下的bash来执行
(2) 第8行的pidarr=$(ps x | awk '{print $1}')表示将ps x | awk '{print $1}' 的结果存入变量pidarr中,其中awk命令是个很有用的命令,详细使用方法可以百度
改进程序:
#!/bin/bash
echo $1pidarr=$(ps x | grep $1 | awk '{print $1}')
arr=($pidarr)
len=${#arr[*]}if [ $len -ge 4 ]then # 循环kill所有名为$1的进程 indx=0 indmax=$[$len-3] while [ $indx -lt $indmax ]; do kill -9 ${arr[$idx]} echo "kill -9 "${arr[$idx]} indx=$[$idx + 1] doneelse echo "该进程不存在"fi
示例2:
#!/bin/bash
#================================================== # name : getpid.sh # brief : get pid accord to process name # autor : Monkey.Knight #================================================== if [ $# -eq 1 ] then PROC_NAME="$1" echo "server name:"${PROC_NAME} num=`ps -ef | grep "${PROC_NAME}" | grep -v "grep" | grep -v "bash" | wc -l ` pidvar=`ps x | grep "${PROC_NAME}" | grep -v "grep" | grep -v "bash" | awk '{print $1}'` echo $num if [ $num -gt 0 ] then echo $pidvar fi else echo "语法错误,正确语法如下:" echo "getpidparam.sh process_name" fi