#!/bin/bash
a=123456
for ((i=1;i<=3;i++))
do
read -p "请输入密码:" passwd
if [ "$a" == "$passwd" ] ##字符的比较最好用引号引起来
then
echo "密码正确"
exit
else
echo "密码错误请重新输入"
fi
done
echo "你已经输错3次"
7.使用循环语句将一个 0到255 之间的十进制数转换成8位数二进制数
#!/bin/bash
read -p "请输入一个0-255的整数:" num
for i in {1..8}
do
a=$[$num % 2]$a
let num=$[$num / 2]
done
echo $a
编写能够自动生成一个6位随机密码的脚本
#!/bin/bash
num="0123456789abcdeABCDEF"
for ((i=1;i<=6;i++))
do
a=$[RANDOM % ${#num}]
tmp=${num:a:1}
passwd=$passwd$tmp
done
echo "随机生成的6位密码位:" $passwd
将一个点分十进制格式的IP地址转换成点分二进制格式
#!/bin/bash
read -p "请输入完成的IP地址:" ip
b=0
IFSB=$IFS
IFS=$IFS'.'
for a in `echo $ip` ##这里使用反撇号,获取命令执行结果
do
for i in {128,64,32,16,8,4,2,1}
do
NUM=$[$a - $i]
if [ $NUM -lt 0 ]
then
echo -n "0"
else
echo -n "1"
a=$NUM
fi
done
let b+=1
if [ $b -lt 4 ]
then
echo -n "."
fi
done
echo
IFS=$IFSB
md5sum /opt/test/* > /opt/md5.txt
## 这个是在运行脚本前,将目录中的文件的MD5值存放在一个文件中
#!/bin/bash
for file in $(ls /opt/test)
do
##echo $file 获取文件
SUM_NOW=$(md5sum /opt/test/$file | awk '{print $1}')
##获取现在文件的MD5值并将结果输入到文件中
SUM_OLD=$(grep $file /opt/md5.txt | awk '{print $1}')
##在存储MD5的文件中,根据文件名查找到
if [ "$SUM_NOW" != "$SUM_OLD" ]##判断两次的MD5值是否一样
then
echo "$file文件发生改变"
fi
done
输出环境变量PATH的目录所包含的所有可执行文件
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#!/bin/bash
IFSOLD=$IFS
IFS=$':'
for folder in $PATH
do
for file in $folder/*
do
if [ -f "${file}" ] && [ -x "${file}" ]
then
echo "$file"
fi
done
done
IFS=$IFSOLD
通过脚本输出环境变量PATH所包含的所有目录以及其中的子目录和所有不可执行文件
#!/bin/bash
IFSB=$IFS
IFS=$IFS':'
for folder in $PATH
do
AllFile=$(find $folder -print)
for i in $AllFile
do
if [ -f $i ] && [ -x $i ]
then :
else
echo $i
fi
done
done
IFS=$IFSB