一,数组定义
定义方法1
arr=(1 2 3 4 5) #用空格分开
定义方法2
array
array[0]="a"
array[1]="b"
array[2]="c"
定义方法3
str=“a b c”
array=($str)
二,数组调用及遍历
${#array[@]} #获取数组的长度
echo ${array[@]} #遍历数组(输出数组全部元素)
array[0]=5 #向数组的某个元素赋值
echo ${array[@]:1:2} #输出array[0]和array[1]的值
echo ${array[@]:2} #输出数组第三个元素以后的值
echo ${array[@]::2} #输出数组下标小于2的值
$ echo ${#array[3]} #取得元素3的长度
unset array #清除array
array= #清空array的值
遍历(For循环法)
for i in ${arr[@]}
do
echo $i
done
遍历(For循环法2)
for ((i=0;i<${#array[@]};i++))
do
echo ${array[$i]}
done
遍历(while循环法)
len=${#arr[@]}
i=0
while [ $i -lt $len ]
do
echo ${arr[$i]}
let i++
done
每隔30秒,查找名为ndh2nds的进程,找出其pid,修改/proc/$pid/oom_score_adj的值,防止该进程被OOM机制杀掉
#!/bin/bash
while :
do
list=`ps -ef | grep -i ndh2nds | grep -v 'grep ' | awk '{print $2}'`
array=($list)
for pid in ${array[@]}
do
score=`cat /proc/$pid/oom_score_adj`
echo oom_score_adj of pid $pid is $score
if [ $score -ge 0 ]; then
echo -100 > /proc/$pid/oom_score_adj
echo changed oom_score_adj of pid $pid to `cat /proc/$pid/oom_score_adj`
fi
done
sleep 30
done
Leave a Reply