shell脚本编程练习
转至:http://www.178linux.com/88406
1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态
在线的主机使用绿色显示
不在线的主使用红色显示
#!/bin/bash
#
for i in {1..254};do
if ping -c 6 -w 1 192.168.1.$i &> /dev/null;then
echo -e “\033[32m 192.168.1.$i \033[0m is up”
else
echo -e “\033[31m 192.168.1.$i \033[0m is down”
fi
done
2、如何给网络接口配置多个地址,有哪些方式?
- a) 使用ifconfig命令
例如 ifconfig eno16777736:0 192.168.0.100/24
- b) 使用Ip addr命令
例如 ip addr add 192.168.0.101/24 dev eno16777736
- c) 通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;
- d) 使用nmtui命令
3、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串
(4) 分别统计S开头和K开头的文件各有多少
#!/bin/bash
#
declare -i n=0
declare -i m=0
for i in $(ls /etc/rc.d/rc3.d); do
if [ $(echo $i | cut -c 1) == “K” ]; then
echo “$i stop”
let n++
elif [ $(echo $i | cut -c 1) == “S” ]; then
echo “$i start”
let m++
fi
done
echo “K is $n S is $m.”
4、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数
(2) 计算此些用户的ID之和
#!/bin/bash
#
declare -i sum=0
for i in $@; do
if ! id $i &> /dev/null; then
echo “$i is not user”
else
let sum=$sum+$(id -u $i)
fi
done
echo “uid sum = $sum”
5、写一个脚本
(1) 传递一些目录给此脚本
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型
#!/bin/bash
#
declare -i m=0
declare -i n=0
for i in $@;do
if [ -d $i ];then
for x in $i/*;do
echo $x
let m++
if [ -d $x ];then
echo $x
let n++
fi
done
else
echo “$i is not a dir or not file”
fi
done
echo ” dir = $n file = $m ”
6、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户
#!/bin/bash
#
uname=$1
if id $uname &> /dev/null ;then
if [ $(id -u $uname) -ge 500 ];then
echo “this is a normal user”
else
echo “Not an ordinary user”
fi
else
echo “not a user”
fi
7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来
#!/bin/bash
#
for i in {20..100};do
if ping -c 1 172.16.250.$i &> /dev/null;then
echo “172.16.250.$i is online”
fi
done
8、打印九九乘法表
#!/bin/bash
#
for i in ‘seq 1 9’;do
for j in ‘seq 1 $i’;do
echo -n -e “${j}X${i}=$[$j*$i]\t”
done
echo
done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?