1、判断/var/目录 下所有文件的类型
[root@centos8 ~]#cat for_filetype.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
GREEN='\e[1;32m'
END='\e[0m'
DIR=/var
cd ${DIR}
for FILE in `find`;do
if [ -f ${FILE} ] ;then
echo -e "${GREEN}${FILE} 是普通文件${END}"`
elif [ -d ${FILE} ] ;then
echo -e "${GREEN}${FILE} 是目录文件${END}"
elif [ -b ${FILE} ];then
echo -e "${GREEN}${FILE} 是块设备文件${END}"
elif [ -c ${FILE} ];then
echo -e "${GREEN}${FILE} 是字符设备文件${END}"
elif [ -h ${FILE} ] ;then
echo -e "${GREEN}${FILE} 是符号链接文件${END}"
elif [ -p ${FILE} ] ;then
echo -e "${GREEN}${FILE} 是管道文件${END}"
elif [ -s ${FILE} ] ;then
echo -e "${GREEN}${FILE} 是套接字文件${END}"
fi
done
2、添加10个用户user1-user10, 密码为8位随机字符
[root@centos8 ~]#cat useradd.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
#Author: meng
#Date: 2020-08-13
#FileName: useradd.sh
#URL:
#Description: The test script
#Copyright(C): 2020 All rights reserved
#*********************************************************************
for i in {1..10};do
useradd user${i}
PASSWORD=`cat /dev/urandom | tr -dc '[[:alnum:]]'|head -c8`
echo ${PASSWORD} |passwd --stdin user${i} &> /dev/null
echo user${i}:${PASSWORD} >>/data/user.log
done
3、/etc/rc.d/rc3.d目录 下分别有多个以K开头和以S开头的文件;分别读取每个文件,以K开头的输出为文件加stop,以S开头的输出为文件名加start,如K34filename stop S66filename start
[root@centos8 ~]#cat for_file.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
DIR=/etc/rc.d/rc3.d
for i in `ls ${DIR}`;do
if [[ ${i} =~ ^S ]] ;then
mv ${i} ${i}\tstart
elif [[ ${i} =~ ^K ]];then
mv ${i} ${i}\tstop
fi
done
4、编写脚本,提示输入正整数n的值,计算1+2+…+n的总和
[root@centos8 ~]#cat sum.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
read -p "请输入想要求和的数字:" NUM
if [[ ${NUM} =~ ^[0-9]+ ]] ;then
for ((sum =0,i=1;i<=${NUM};sum+=i,i++));do
true
done
echo ${sum}
else
echo "输入错误"
fi
5、计算100以内所有能被3整除的整数之和
[root@centos8 ~]#cat for_sum.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
sum=0
for i in {1..100};do
[ $[${i}%3] -eq 0 ] && let sum+=i
done
echo ${sum}
6、编写脚本,提示请输入网络地址,如192.168.0.0, 判断输入的网段中主机在线状态
[root@centos8 ~]#cat IP.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
read -p "请输入IP:" IP
ping -c1 -w1 ${IP} >> /dev/null && echo "${IP}在线" || echo "${IP}不在线"
7、打印九九乘法表
[root@centos8 ~]#cat 9x9.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
for i in {1..9};do
for j in `seq ${i}`;do
echo -e "${j}x${i}=$[j*1]\t\c"
done
echo
done
8、在/testdir目录 下创建10个htm|文件文件名格式为数字N (从1到10)加随机8个字母,如:1AbCdeFgH.html
[root@centos8 ~]#cat create_file.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
mkdir -p /testdir
cd testdir
for i in {1..10};do
ALPHA=`cat /dev/urandom |tr -dc '[[:alpha:]]'|head -c8`
touch ${i}${ALPHA}.html
done
9、打印等腰三角形
[root@centos8 ~]#cat triangle.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
read -p "请输入三角形的行数:" NUM
for((i=1;i<=NUM;i++));do
for((k=0;k<=NUM-i;k++));do
echo -e ' \c'
done
for((j=1;j<=2*i-1;j++));do
echo -e '*\c'
done
echo
done
10、 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了-一个。 第二天早上又将剩下的桃子
吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零-一个。 到第10天早上想再吃时,只
剩下一一个桃子了。求第一天共摘了多少?
[root@centos8 ~]#cat monkey.sh
#!/bin/bash
#Version: 1.1
#**********************************************************************
sum=1
for i in {1..9};do
let sum=(sum+1)*2
done
echo $sum