跳至主要內容

Shell脚本案例

知识库编程技巧CentOSLinux大约 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"