加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell 编程案例整理

发布时间:2020-12-15 16:19:36 所属栏目:安全 来源:网络整理
导读:一、统计成绩文件 [zheng@localhost ~]$ cat score.txt ngsan 80 lisi 81.5 wangwu 93 zhangsan 85 lisi 88 wangwu 97 zhangsan 90 lisi 92 wangwu 88 wangwu 99 统计 [zheng@localhost ~]$ awk ' BEGIN{print "name average total"}{a[$1]+=$2;b[$1]++};END{
一、统计成绩文件
[zheng@localhost ~]$ cat score.txt 
ngsan    80
lisi    81.5
wangwu    93
zhangsan    85
lisi    88
wangwu    97
zhangsan    90
lisi    92
wangwu    88
wangwu    99

统计

[zheng@localhost ~]$ awk 'BEGIN{print "name average total"}{a[$1]+=$2;b[$1]++};END{for(i in a)print i "t"a[i]/b[i]"t"a[i]}' score.txt | column -t
name      average  total
zhangsan  87.5     175
wangwu    94.25    377
ngsan     80       80
lisi      87.1667  261.5

二、求100以内的质数

#!/bin/bash

# 求100以内的质数
#declare -i i=1
i=1
while (( i<=100 ))
do
    ret=1
    for ((j=2;j<i;j++))
    do
        # if (( i%j == 0));then
        if [ $(( i%j )) -eq 0 ];then
            ret=0
            break
        fi
    done
    if [ $ret -eq 1 ];then
        echo "$i"
    fi
    # 以下六种运算方式都可以使用
    # (( i=i+1 ))
     i=$[i+1]
    # i=$((i+1))
  # let i=i+1
  # let i++
  # i=`expr $i + 1` # 下面这行中的i需要declare为int #i=$i+1 done

for 循环

#!/bin/bash

for ((i=1;i<100;i++))
do
    ret=1
    for ((j=2;j<i;j++))
    do
        if (( i%j == 0 ));then
            ret=0
            break
        fi    
    done
    if ((ret==1));then
        echo $i
    fi
done

三、生成32位随机字符

cat /proc/sys/kernel/random/uuid | tr -d '-'2346e35abbf1421e9ad25ce1996f26df

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读