1、编写一个Shell脚本用于判断192.168.242.0/24网络中当前在线的IP地址,并打印出这些IP地址。
脚本:
#!/bin/bash
# 网络前缀
NETWORK="192.168.242"
echo "正在扫描网络 $NETWORK.0/24 中的活动主机..."
# 遍历主机地址
for i in {1..254}
do
# IP地址
IP="${NETWORK}.${i}"
# 使用ping命令检查主机是否在线,仅发送一次ICMP请求
if ping -c 1 "$IP" &> /dev/null; then
echo "主机 $IP 在线。"
fi
done
测试:
2、设计一个Shell程序,在/userdata目录下创建50个目录,命名为user1至user50。设置每个目录的权限如下:
文件所有者:读、写、执行权限。
文件所有者所在组:读、执行权限。
其他用户:读权限。
脚本:
#!/bin/bash
BASE_DIR="/userdata"
# 检查基础目录是否存在,不存在则创建,并检查创建是否成功
if [ ! -d "$BASE_DIR" ]; then
mkdir "$BASE_DIR"
if [ $? -ne 0 ]; then
echo "无法创建基础目录 $BASE_DIR。"
exit 1
fi
fi
# 创建50个目录并设置权限
for i in {1..50}
do
DIR_NAME="${BASE_DIR}/user${i}"
# 创建目录,并检查创建是否成功
mkdir "$DIR_NAME"
if [ $? -ne 0 ]; then
echo "无法创建目录 $DIR_NAME。"
continue
fi
# 设置目录权限,并检查设置是否成功
chmod 754 "$DIR_NAME"
if [ $? -ne 0 ]; then
echo "无法设置目录 $DIR_NAME 的权限。"
continue
fi
echo "已成功创建并设置权限于目录 $DIR_NAME。"
done
echo "所有目录创建和权限设置完成。"
测试: