0
点赞
收藏
分享

微信扫一扫

shell小练

倪雅各 2022-04-13 阅读 71
linux

目录

实验一

实验二

实验三

实验四

实验五

实验六

实验七

实验八


实验一

计算从1到100所有整数的和

#!/bin/bash
i=1
sum=0
for i in {1..100}
do
        let sum+=i
        let i++
done
echo $sum

实验二

提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和

#!/bin/bash
sum=0
read -p "请输入一个小于100的整数:" i
while [ $i -le 100  ]
do
        let sum+=i
        let i++
done
echo $sum

实验三

求从1到100所有整数的偶数和、奇数和

#!/bin/bash
even=0
odd=0
for i in {1..100}
do
        a=$[ i%2  ]
        case $a in
        0)
                let even+=i
                let i++
        ;;
        *)
                let odd+=i
                let i++
        esac
done
echo "偶数和为$even"
echo "奇数和为$odd"

实验四

用户名存放在users.txt文件中,每行一个,判断文件里的用户是否存在,若该用户存在,输出提示该用户已存在;若该用户不存在,提示用户输入密码,建立用户并设立其密码

 

#!/bin/bash
read -p "请输入用户名:" name
groups $name &> /dev/null
if [ $? -eq 0 ];then
        echo "该用户已存在!"
else [ $? -ne 0 ]
        read -p "请输入用户密码:" password
        useradd $name
        echo $password | passwd --stdin $name
fi

实验五

检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip中

#!/bin/bash
for i in 192.168.88.{87..133}
do
  ping -c 2 -i 0.5 -w 1 $i &> /dev/null
  if [ $? -eq 0 ]
  then
     echo "$i is online" >> host_ip
  else
     echo "$i is offline"
  fi
done

 

实验六

用户输入密码,脚本判断密码是否正确,正确密码为123456,输入正确提示正确信息,连续输错3次则报警

#!/bin/bash
number=3
password=123456
n=0
read -p "请用户输入密码: " mm
if [ $mm -eq $password ];then
  echo "输入正确"
elif [ $mm -ne $password ];then
  read -p "请用户输入密码: " mm1
  if [ $mm1 -eq $password ];then
    echo "输入正确"
    elif [ $mm1 -ne $password ];then
      read -p "请用户输入密码: " mm2
      if [ $mm2 -eq $password ];then
        echo "输入正确"
      elif [ $mm2 -ne $password ];then
        echo "报警"
      fi
    fi
fi

实验七

编写能够自动生成一个6位随机密码的脚本

#!/bin/bash
a="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
passwd=''
n=1
while [ $n -le 6 ]
do
        x=$[RANDOM%62]
        y=${a:$x:1}
        passwd=${passwd}$y
        let n++
done
echo "随机生成密码为:$passwd"

实验八

使用循环语句将一个 0到255 之间的十进制数转换成二进制数

#!/bin/bash
read -p "输入0-255之间的整数:" i
  if [ $i -ge 0 ] && [ $i -lt 256 ]
  then
  num=$i
for ((j=1; j<=8; j++))
do
sum=$[ $num % 2 ]$sum
num=$[$num / 2]
done
  echo "$sum"
  fi

举报

相关推荐

0 条评论