微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SHELL训练营--day19_shell练习36-40

#一个 数字的行
#!/bin/bash
while read line
do
    n=`echo $line |sed 's/[^0-9]//g'|wc -L`
    if [ $n -eq 1 ]
    then
        echo $line
    fi
done < 1.txt

#日志切割归档
#!/bin/bash
cd /data/logs
log=1.log
mv_log()
{
    [ -f $1 ] && mv $1 $2
}

[ -f $log.5 ] && rm -f $log.5

for i in `seq 4 -1 1`
do 
    j=$[$i+1]
    mv_log $log.$i $log.$j
done
mv_log $log $log.1

#查找在线IP
#!/bin/bash

for i in `seq 1 254`
do
    if ping -c 2 -W 2 192.168.0.$i &>/dev/null
    then
        echo "192.168.0.$i 在线。"
    else
        echo "192.168.0.$i 不在线。"
    fi
done

#检查脚本错误
#!/bin/bash
sh -n $1 2> /tmp/sh.err
if [ $? -ne 0 ]
then
    cat /tmp/sh.err
    read -p "请输入 q/Q 退出脚本。" c
    if [ -z "$c" ]
    then
        vim $1
        exit 0
    fi

    if [ $c == "q" ] || [ $c == "Q" ]
    then
        exit 0
    else
        vim $1
    fi
else
    echo "脚本 $1 没有语法错误。"
fi

#格式化数字
#!/bin/bash
n=`echo$1|wc -L`
for d in `echo $1|sed 's/./& /g'`
do 
    n2=$[$n%3]
    if [ $n2 -eq 0 ]
    then
        echo -n " ,$d"
    else
        echo  -n  "$d"
    fi
    n=$[$n-1]
done |sed 's/^,//'
echo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐