shell编程 31-35

31、使用脚本循环创建三位数字的文本文件(111-999 的文件)

#!/bin/bash

使用脚本循环创建三位数字的文本文件(111-999 的文件)

for i in {1…9}
do
for j in {1…9}
do
for k in {1…9}
do
touch /tmp/ i i ij$k.txt
done
done
done
32、统计/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 出76、判断用户输入的数据类型(字母、数字或其他)

#!/bin/bash

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

read -p “请输入一个字符:” KEY
case “$KEY” in
[a‐z]|[A‐Z])
echo “字母”
;;
[0‐9])
echo “数字”
;;
*)
echo “空格、功能键或其他控制字符”
esac
现次数为"x}’ /etc/passwd
33、将 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
34、判断文件或目录是否存在

#!/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
35、使用awk编写的wc程序

#!/bin/bash

使用awk编写的wc程序

自定义变量 chars 变量存储字符个数,自定义变量 words 变量存储单词个数

awk 内置变量 NR 存储行数

length()为 awk 内置函数,用来统计每行的字符数量,因为每行都会有一个隐藏的$,所以每次统计后都+1

wc 程序会把文件结尾符$也统计在内,可以使用 cat ‐A 文件名,查看该隐藏字符

awk ‘{chars+=length($0)+1;words+=NF} END{print NR,words,chars}’ $1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值