计算从1到100所有整数的和
#!/bin/bash
#计算从1到100所有整数的和
sum=0
for ((a=1; a<=100; a++))
do
sum=$[sum + $a]
done
echo $sum
提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
#!/bin/bash
#提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
read -p "请输入一个小于100的整数:" num
sum=0
for ((a=1; a<=num; a++))
do
sum=$[sum + a]
done
echo "$sum"
求从1到100所有整数的偶数和、奇数和
#!/bin/bash
#求从1到100所有整数的偶数和、奇数和
jinum=0
ounum=0
for ((i=1; i<=100; i++))
do
a=$[i % 2]
if [ $a -eq 1 ];then
jinum=$((jinum + i))
else
ounum=$((ounum + i))
fi
done
echo "1到100所有整数的偶数和 :$ounum"
echo "1到100所有整数的奇数和 :$jinum"
用户输入密码,脚本判断密码是否正确,正确密码为123456,输入正确提示正确信息连续输错3次则报警
#!/bin/bash
#.用户输入密码,脚本判断密码是否正确,正确密码为123456,输入正确提示正确信息连续输错3次则报
for ((a=1; a<=3; a++))
do
read -p "请输入密码:" num
if [ $num -eq 123456 ];then
echo "密码正确"
exit
else
echo "密码错误请重试"
fi
done
echo "报警!!!"
编写能够自动生成一个6位随机密码的脚本
#!/bin/bash
#编写能够自动生成一个6位随机密码的脚本
mima() {
str="123456789"
for ((i=1; i<=$wei; i++))
do
num=$[RANDOM % ${#str}]
passd=${str:num:1}
password+=$passd
done
}
read -p "请输入位数来生成位数的随机密码:" wei
mima $1
echo "$wei位的随机密码为$password"
求裴波拉切数:1,1,2,3,5,8,13,21,34,55,89...数列从第3项开始每一项等于前两项之和,打印前10个元素
#!/bin/bash
#求裴波拉切数:1,1,2,3,5,8,13,21,34,55,89...数列从第3项开始每一项等于前两项之和,打印前10个元素
first=1
second=1
for ((i=1; i<=10; i++))
do
echo $first
c=$[first + second]
first=$second
second=$c
done
使用循环语句将一个 0到255 之间的十进制数转换成8位数二进制数
#!/bin/bash
#使用循环语句将一个 0到255 之间的十进制数转换成8位数二进制数
read -p "请输入一个0-255之间的数:" num
for ((i=1; i<=8; i++))
do
yushu=$[num % 2]
num=$[num / 2]
result=$yushu$result
done
echo $result
将一个200行的文件分割成多个50行的文件
#!/bin/bash
#将一个200行的文件分割成多个50行的文件
filepath=/root/day10/test.txt
a=0
i=1
IFS_OLD=$IFS
IFS=$'\n'
for line in $(cat $filepath)
do
let a++
c=$[a % 50]
if [ $c -eq 0 ];then
echo $line >> /root/day10/test${i}.txt
let i++
else
echo $line >> /root/day10/test${i}.txt
fi
done
IFS=$IFS_OLD
将一个点分十进制格式的IP地址转换成点分二进制格式
#!/bin/bash
#将一个点分十进制格式的IP地址转换成点分二进制格式
IP="192.168.80.30"
n=0
for ((i=1; i<=4; i++))
do
num=${IP%%.*}
IP=${IP#*.}
result=''
for a in {1..8}
do
yushu=$[num % 2]
num=$[num / 2]
result=$yushu$result
done
let n++
if [ $n -lt 4 ];then
echo -n ${result}.
else
echo $result
fi
写个逛淘宝选购商品脚本
每家商店有五种商品选购
(衣服500元,裤子400元,鞋子300元,帽子200元,袜子50元),
每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话
购物车结管总额
#!/bin/bash
#写个逛淘宝选购商品脚本,每家商店有五种商品选购(衣服500元,
#裤子400元,鞋子300元,帽子200元,袜子50元),
#每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话
#购物车结管总额
n=1
sum=0
while true
do
echo "欢迎来到${n}第家店"
read -p "是否进店?(yes/no)" doing
until [ "$doing" == "no" ]
do
echo -e "欢迎光临!\n1:衣服500元 \n2:裤子400元 \n3:鞋子300元 \n4:帽子200元 \n5:袜子50元 \n6:放弃购买"
read -p "请选择需要购买的商品序号:" num
case $num in
1)
echo "衣服购买成功"
let sum+=500
;;
2)
echo "裤子购买成功"
let sum+=400
;;
3)
echo "鞋子购买成功"
let sum+=300
;;
4)
echo "帽子购买成功"
let sum+=200
;;
5)
echo "袜子购买成功"
let sum+=50
;;
6)
echo "放弃购买"
;;
*)
echo "输入错误"
esac
read -p "是否继续在这家购物?(yes/no)" doing
done
read -p "是否继续逛下一家(yes/no)" going
if [ "$going" == "yes" ];then
let n++
else
break
fi
done
echo -e " 一共逛了{$n}家店,\n合计消费为${sum}元"
通过脚本输出环境变量PATH所包含的所有目录以及其中子目录和所有不可执行文件
length=$(echo $PATH | awk -F: '{print NF}')
path=$PATH
for ((i=1; i<=length; i++))
do
folder=${path%%:*}
path=${path#*:}
find $folder -type d
files=$(find $folder -type f)
for j in $files
do
if [ ! -x $j ];then
echo "$j 为不可执行文件"
fi
done
done
请输出数值来决定菱形的大小
lingxing () {
num=$1
for ((a=1; a<=num; a++))
do
for ((i=num; i>a; i--))
do
echo -n " "
done
c=$[(a*2)-1]
for ((b=1; b<=c; b++))
do
echo -n "*"
done
echo ""
done
for ((a=num-1; a>=1; a--))
do
for ((i=num-1; i>=a; i--))
do
echo -n " "
done
c=$[(a*2)-1]
for ((b=1; b<=c; b++))
do
echo -n "*"
done
echo ""
done
}
#######main########
read -p "请输入菱形的大小:" NUM