Shell脚本案例
大约 1 分钟
获取 ip 地址
#!/bin/bash
# 获取本机的IP地址
ip=$((ip addr||ifconfig) |grep -v 255.0.0.0|grep -v 255.255.0.0|grep -v docker| sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' |head -1)
network=$(echo $ip|sed -r "s/([0-9]+\.[0-9]+\.[0-9]+)\..*$/\1.0\/24/g")
echo IP: $ip
echo NETWORK: $network
创建 Linux 系统账户及密码
#!/bin/bash
# 通过位置变量创建 Linux 系统账户及密码
## $1 是执行脚本的第一个参数, 用户名称
## $2 是执行脚本的第二个参数, 用户密码
useradd "$1"
echo "$2" | passwd ‐‐stdin "$1"
点名器脚本
#!/bin/bash
# 编写一个点名器脚本
## 需要提前准备一个 user.txt 文件
## 该文件中需要包含所有姓名的信息,一行一个姓名,脚本每次随机显示一个姓名
while :
do
#统计 user 文件中有多少用户
line=`cat user.txt |wc ‐l`
num=$[RANDOM%line+1]
sed -n "${num}p" user.txt
sleep 0.2
clear
done
统计 Linux 系统中账户数量
#!/bin/bash
## 统计当前 Linux 系统中可以登录计算机的账户有多少个
grep "bash$" /etc/passwd | wc -l
各种格式的时间
#!/bin/bash
# 打印各种时间格式
echo "显示星期简称(如:Sun)"
date +%a
echo "显示星期全称(如:Sunday)"
date +%A
echo "显示月份简称(如:Jan)"
date +%b
echo "显示月份全称(如:January)"
date +%B
echo "显示数字月份(如:12)"
date +%m
echo "显示数字日期(如:01 号)"
date +%d
echo "显示数字年(如:01 号)"
date +%Y echo "显示年‐月‐日"
date +%F
echo "显示小时(24 小时制)"
date +%H
echo "显示分钟(00..59)"
date +%M
echo "显示秒"
date +%S
echo "显示纳秒"
date +%N
echo "组合显示"
date +"%Y%m%d %H:%M:%S"