每周5练·shell

1、使用脚本循环创建三位数字的文本文件(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$j$k.txt
        done
    done
done


2、使用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

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

#!/bin/bash
# 判断用户输入的数据类型(字母、数字或其他)
read -p "请输入一个字符:" KEY
case "$KEY" in
[a‐z]|[A‐Z])
echo "字母"
;;
[0‐9])
echo "数字"
;;
*)
echo "空格、功能键或其他控制字符"
esac
现次数为"x}' /etc/passwd


4、将 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


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

#!/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

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值