

循环脚本编写_10965183的技术博客_51CTO博客
source link: https://blog.51cto.com/gavenlee/5763670
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

循环脚本编写
精选 原创1、判断/var目录下所有文件的类型
cd /var
File=`ls /var`
for i in *; do
file_type=`ls -ld $i |cut -b1`
case $file_type in
d)
echo "$i is 目录"
;;
l)
echo "$i is 链接文件"
;;
-)
echo "$i is 普通文件"
;;
b)
echo "$i is 设备文件"
;;
c)
echo "$i is 字符文件"
;;
esac
done

2、添加10个用户user1-user10,密码为8位随机字符
for i in {1..10}; do
id user$i &>/dev/null && echo "user$i is exit" || useradd user$i
User_passwd=`echo $RANDOM |md5sum | cut -c 1-8`
echo user$i:$User_passwd | chpasswd
echo "user$i $User_passwd">>a.txt
done
bug 如果账户存在会将密码重置,建议增加一次判断,替换成 id user$i &>/dev/null && { echo "user$i is exit";continue; },不能使用(),()开启子

3、计算100以内所有能被3整除的整数之和

4、在/testdir目录下创建10个html文件,文件名格式为数字N(从1到10)加随机8个字母,如: 1AbCdeFgH.html

mkdir testdir
cd testdir
for ((i=1;i<=10;i++));do
file_name=`openssl rand -base64 20 | sed -nr "s/[^a-Z]+//gp" | cut -c 1-8`
touch $i$file_name\.html
done
5、编写脚本,打印九九乘法表(用while)

i=1
while [ $i -lt 10 ];do
j=1
while [ $j -le $i ];do
echo -e "$i*$j=$[$i*$j]\t\c"
let j++
done
echo
let i++
done
6、编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大值和最小值

i=1
while [ $i -le 10 ] ;do
ran=`openssl rand -base64 20 | cksum |cut -c 1-8`
echo $ran >>a.txt
if [ $i -eq 1 ];then
max=$ran
min=$ran
else
if [ $ran -ge $max ];then
max=$ran
elif [ $ran -le $min ];then
min=$ran
fi
fi
let i++
done
echo "max=$max min=$min"
7、后续六个字符串:efbaf275cd、4be9c40b8b、44b2395c46、f8c8873ce0、b902c16c8b、ad865d2f63是通过对随机数变量RANDOM随机执行命令: echo $RANDOM|md5sum|cut –c1-10后的结果,请破解这些字符串对应的RANDOM值
cat a.txt | while read rand;do
{ while true;do
random=$RAMDOM
temp=`echo $random | md5sum | cut -c 1-10`
if [ "$ran" = "$temp" ];then
echo "$rand is $random md5"
break
fi
done }&
wait
done
12、编写猜数字游戏脚本提示比较大或小,相等则退出

let NUM=$RANDOM%10
while read -p "请猜数字:" Guess ;do
if [ $Guess -lt $NUM ];then
echo "猜小了"
elif [ $Guess -gt $NUM ];then
echo "猜大了"
else
echo "猜对了,是$NUM"
break
fi
done
13、用文件名做为参数,统计所有参数文件的总行数

sum=0
while [ -n "$1" ];do
line=`wc -l $1 | grep -o "[0-9]\+"`
echo $1 $line
let sum+=line
shift
done
echo $sum
- 赞
- 收藏
- 评论
- 分享
- 举报
Recommend
-
6
如何编写测试用例 原创 多测师11 2022-06-21 10:16:19...
-
9
17、正则表达式 原创 REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符...
-
4
正则表达式练习 原创 小小ITa 2022-07-15 08:33:25...
-
5
27、软件包管理 原创 编译命令gcc源代码要想能够在机器上执行,需...
-
5
sed命令练习 精选 原创 1、匹配root行,加-e为扩展正则表达式,不加为基本...
-
4
33、磁盘结构详情 精选 原创 linux系统的理念为一切皆文件,设备文件:关联至一个设备驱动程序,进而能够跟之对应的硬件设备...
-
10
磁盘文件练习 精选 原创 1、dd命令格式 dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=# 常用选项: i...
-
7
41、网络配置命令 精选 原创 1、网卡命名相关配置文件:/etc/udev/rules.d/70-persistent-net.rules
-
0
42、网络配置文件 精选 原创 网络配置基本文件IP、MASK、GW、DNS相关的配置文件:/etc/sysconfi...
-
9
1) 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while 均可以作为外层循环和内层循环。 【建议一般使用两层,最多不要超过 3 层, 否则,代码的可读性很差】 2) 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK