首页 > 系统相关 >Shell数组练习

Shell数组练习

时间:2023-04-02 17:12:47浏览次数:43  
标签:bin ... Shell 练习 FileName shell done 数组 type

1、将/etc/shadow文件的每一行作为元素赋值给数组

#!/bin/bash
# 统计行数,作为循环次数
num=`wc -l < /etc/shadow`

for ((i=0;i<=num;i++))
do
  # 根据i的变化取前i行内容再然后截取最后一行加入数组中
  array[$i]=$(head -$i /etc/shadow | tail -1)
done

# 依次输出数组中的内容
for i in ${array[*]}
do
  echo $i
done

2、使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量

[root@template ~]# cat arr2.sh
#!/bin/bash
declare -A type_shell
while read line
do
  type=`echo $line | awk -F: '{print $7}'`
  let type_shell[$type]++
done < /etc/passwd
for i in ${!type_shell[@]}
do
  echo "$i ...${type_shell[$i]}"
done
[root@template ~]# ./arr2.sh
/sbin/nologin ...14
/bin/sync ...1
/bin/bash ...2
/sbin/shutdown ...1
/sbin/halt ...1

3、使用关联数组按扩展名统计指定目录中文件的数量

#!/bin/bash
declare -A Array
# 取目录下文件FileName,相当于取后缀名
ls $1 | sed 's/ /\n/g' >> $1/FileName.txt

while read FileName
do
   ArrayIndex=${FileName##*.}
   let Array[$ArrayIndex]++
done < $1/FileName.txt
for i in ${!Array[@]}
  do
    echo "$i :::::: ${Array[$i]}"
  done
rm -f $1/FileName.txt



标签:bin,...,Shell,练习,FileName,shell,done,数组,type
From: https://www.cnblogs.com/sre-chan/p/17280704.html

相关文章

  • hivesql练习_间断连续登录用户问题
    现有各用户的登录记录表(login_events)如下,表中每行数据表达的信息是一个用户何时登录了平台。user_idlogin_datetime1002021-12-0119:00:001002021-12-0119:30:001002021-12-0221:01:00现要求统计各用户最长的连续登录天数,间断一天也算作连续,例如:一个用户在......
  • 215. 数组中的第K个最大元素
    参考:https://leetcode.cn/problems/kth-largest-element-in-an-array/solutions/19607/partitionfen-er-zhi-zhi-you-xian-dui-lie-java-dai-/https://www.bilibili.com/video/BV1La411J7q9/?spm_id_from=333.999.0.0classSolution{publicintfindKthLargest(int[]n......
  • 713. 乘积小于 K 的子数组
    力扣题目链接给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例1:输入:nums=[10,5,2,6],k=100输出:8解释:8个乘积小于100的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注......
  • 面试题45(Java)-把数组排成最小的数(中等)
    题目:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例1:输入:[10,2]输出:"102"示例 2:输入:[3,30,34,5,9]输出:"3033459"提示:0<nums.length<=100说明:输出结果可能非常大,所以你需要返回一个字符串而不......
  • 树状数组
    树状数组简单记录一下模板和用法,不做深入证明探究!能解决的问题:区间查询前缀和单点修改(某个值+一个数)是一个在logN复杂度就能完成以上操作的数据结构。严格来说,能解决的问题是线段树的子集。树状数组能够解决的问题,线段树一定可以解决!但是树状数组代码简单好写,相比臃肿庞......
  • Shell 变量
    和普通的高级语言比较:java\python\go之类的,有2个核心点要注意字符串字面量的表示操作符之间的空格问题Shell变量定义变量时,变量名不加美元符号($),如:语言的本质在于编译原理,除了机器语言,上层封装都取决于宿主怎么解释,token每种语言都不完全一样。所以作为面向对象语言的......
  • C语言逆向——如何寻找main入口,一个反汇编成C的实战练习
    第二节2.3找程序的入口原文:https://www.showdoc.com.cn/fengxin1225/7054696489361869控制台应用程序的main函数入口在OD中找到以上其他中的函数,然后跟着3个参数的CALL就是main例:———————————————————- 第二节2.4.1逆向并还原为C代码(网上解答)......
  • Go 语言数组和切片的区别
    原文链接:Go语言数组和切片的区别在Go语言中,数组和切片看起来很像,但其实它们又有很多的不同之处,这篇文章就来说说它们到底有哪些不同。另外,这个问题在面试中也经常会被问到,属于入门级题目,看过文章之后,相信你会有一个很好的答案。数组数组是同一种数据类型元素的集合,数组在......
  • Shell 简介
    C(汇编)、编译原理、操作系统编程、数据结构和算法是打假程序员的核心标尺,这些不懂基本都是假程序员。因为离开这些搞得那些庞杂的知识体系都是没有根的,就算你记住了所谓的架构原理,也是封装后的一些假象。Shell教程Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。S......
  • 453.最小操作次数使数组元素相等
    最小操作次数使数组元素相等给你一个长度为n的整数数组,每次操作将会使n-1个元素增加1。返回让数组所有元素相等的最小操作次数。示例1:输入:nums=[1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3]=>[2,3,3]=>[3,4,3]=>[4,4,4]......