魏长东

weichangdong

判断shell元素是否在数组中

shell判断数组中是否包含某个元素:

ary=(1 2 3)

a=2

if [[ "${ary[@]}" =~ "$a" ]] ; then
    echo "a in ary"
else
    echo "a not in ary"
fi

判读字符串($str)是否包含另一个字符串($str1):

方法1:

if [  `echo $str | grep -e '$str1'`  ] ; then

    echo yes

fi

方法2(如果$str1在判断中直接使用字符串而不是变量,则不能加引号,如if [[ $str =~ ^dx ]]判读字符串$str是否以dx开头,^dx不能加引号):

if [[ $str =~ $str1 ]] ; then

    echo yes

fi

 

300个进程,如果那个进程挂掉了,则重新开启。

all_pid=$(seq 1 300)
ok_pid=($(ps  axf|grep last_step_text|grep  -v  grep |awk  '{print  $7}'|sort -n))
#echo  ${ok_pid[*]}
#echo   ${ok_pid[@]}
for pid in $all_pid
do
        if [[ ! "${ok_pid[@]}" =~ "$pid" ]]
        then
                 /usr/bin/php /work/opera/last_step_text.php $pid &
                echo "$pid ok"
        fi
done