shell脚本100例

mac2025-08-22  3

1、判断文件或目录是否存在

#!/bin/bash

判断文件或目录是否存在

if [ $# -eq 0 ] ;then echo “未输入任何参数,请输入参数” echo “用法:$0 [文件名|目录名]” fi if [ -f $1 ];then echo “该文件,存在” ls -l $1 else echo “没有该文件” fi if [ -d $1 ];then echo “该目录,存在” ls -ld $2 else echo “没有该目录” fi 2、使用 egrep 过滤 MAC 地址

#!/bin/bash

使用 egrep 过滤 MAC 地址

MAC 地址由 16 进制组成,如 AA:BB:CC:DD:EE:FF

[0‐9a‐fA‐F]{2}表示一段十六进制数值,{5}表示连续出现5组前置:的十六进制

egrep “[0‐9a‐fA‐F]{2}(:[0‐9a‐fA‐F]{2}){5}” $1 3、将 Linux 系统中 UID 大于等于 1000 的普通用户都删除

#!/bin/bash

将 Linux 系统中 UID 大于等于 1000 的普通用户都删除

先用 awk 提取所有 uid 大于等于 1000 的普通用户名称

再使用 for 循环逐个将每个用户删除即可

user=$(awk -F: ‘$3>=1000{print $1}’ /etc/passwd) for i in $user do userdel -r $i done 4、判断用户输入的数据类型(字母、数字或其他)

#!/bin/bash

判断用户输入的数据类型(字母、数字或其他)

read -p “请输入一个字符:” KEY case “$KEY” in [a‐z]|[A‐Z]) echo “字母” ;; [0‐9]) echo “数字” ;; *) echo “空格、功能键或其他控制字符” esac 5、统计/etc/passwd 中 root 出现的次数

#!/bin/bash

统计/etc/passwd 中 root 出现的次数

#每读取一行文件内容,即从第 1 列循环到最后 1 列,依次判断是否包含 root 关键词,如果包含则 x++ awk -F: ‘{i=1;while(i<=NF){if($i~/root/){x++};i++}} END{print "root 出现次数为"x}’ /etc/passwd

最新回复(0)