linux高级的脚本,【2018.07.23学习笔记】【linux高级知识 Shell脚本编程练习】

1、编写shell脚本,计算1-100的和;

#!/bin/bash

sum=0

for i in `seq 1 100`

do

sum=$[$sum+$i]

done

echo $sum

2、编写shell脚本,要求输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止;

#!/bin/bash

n=0

while [ $n -lt "1" ]

do

read -p "Please input a number: " n

done

sum=0

for i in `seq 1 $n`

do

sum=$[$sum+$i]

done

echo $sum

3、编写shell脚本,把/root/目录下的所有目录(只需要一级)拷贝到/tmp/目录下;

#!/bin/bash

cd /root/

for i in `ls /root/`

do

if[ -d $i]

then

cp -r $i /tmp/

fi

done

4、编写shell脚本,批量建立用户user_00, user_01, ... user_100并且所有用户同属于users组;

#!/bin/bash

groupadd users

for i in `seq 0 9`

do

useradd -g users user_0$i

done

for j in `seq 10 100`

do

useradd -g users user_$j

done

5、编写shell脚本,截取文件test.log中包含关键词 ‘abc’ 的行中的第一列(假设分隔符为 ”:” ),然后把截取的数字排序(假设第一列为数字),然后打印出重复次数超过10次的列;

#!/bin/bash

grep 'abc' test.log|awk -F ':' {print $1}|sort -n|uniq -c|sort -n|awk '$1 >10 {print $2}'

6、编写shell脚本,判断输入的IP是否正确(IP的规则是,n1.n2.n3.n4,其中1

checkip() {

if echo $1 |egrep -q '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' ; then

a=`echo $1 | awk -F. '{print $1}'`

b=`echo $1 | awk -F. '{print $2}'`

c=`echo $1 | awk -F. '{print $3}'`

d=`echo $1 | awk -F. '{print $4}'`

for n in $a $b $c $d; do

if [ $n -ge 255 ] || [ $n -le 0 ]; then

echo "the number of the IP should less than 255 and greate than 0"

return 2

fi

done

else

echo "The IP you input is something wrong, the format is like 192.168.100.1"

return 1

fi

}

rs=1

while [ $rs -gt 0 ]; do

read -p "Please input the ip:" ip

checkip $ip

rs=`echo $?`

done

echo "The IP is right!"

你可能感兴趣的:(linux高级的脚本)