首页 > 系统相关 >shell补-shell数组

shell补-shell数组

时间:2023-12-15 11:37:03浏览次数:28  
标签:10.0 shell echo 数组 array root localhost 赋值

shell补-shell数组
  • 回顾变量的赋值方法
    • 直接赋值 : a=1
    • 引用命令结果 : ip=$(hostname -I|awk '{print $1}')
    • 通过read交互示
    • 参数传递:脚本/函数参数 传参

不了解数组之前可以用 while read line这类方法

语法: 数组名称[下标],从0开始

####赋值   比较繁琐
[root@localhost ~]# ip1=10.0.0.1
[root@localhost ~]# ip2=10.0.0.2
[root@localhost ~]# ip3=10.0.0.3
[root@localhost ~]# 
######通过数组 存放 类似内容
######最后可以通过循环取出
[root@localhost ~]# array[0]=10.0.0.1
[root@localhost ~]# array[1]=10.0.0.2
[root@localhost ~]# array[3]=10.0.0.3
[root@localhost ~]# echo $array[0]
10.0.0.1[0]  #####这里就需要注意了要加大括号
[root@localhost ~]# echo ${array[0]}
10.0.0.1
[root@localhost ~]# echo ${array[*]}
10.0.0.1 10.0.0.2 10.0.0.3
[root@localhost ~]# echo ${array[@]}
10.0.0.1 10.0.0.2 10.0.0.3
[root@localhost ~]# 
[root@localhost ~]# echo ${#array[@]}  ####这加#号标识数组元素个数,也可以理解为变量子串中的变量长度。
3
[root@localhost ~]# 

数组赋值方法

赋值方法
直接赋值 [root@localhost ~]# array[0]=10.0.0.1
[root@localhost ~]# array[1]=10.0.0.2
[root@localhost ~]# array[3]=10.0.0.3
批量赋值 [root@localhost ~]# array=(1 3 4 5 )
[root@localhost ~]# echo ${array[*]}
1 3 4 5
[root@localhost ~]# echo ${#array[@]}
4
[root@localhost ~]# array=(7 8 9 {1..6} )
[root@localhost ~]# echo ${#array[@]}
9
[root@localhost ~]# echo ${array[*]}
7 8 9 1 2 3 4 5 6
[root@localhost ~]#注意以空格分隔
从文件中赋值读取文件内容赋值 [root@localhost array]# ips=(`cat ./iptest.txt`)
[root@localhost array]# echo ${ips[*]}
10.0.0.1 10.0.0.2 10.0.0.3
[root@localhost array]# echo ${#ips[*]}
3
[root@localhost array]# echo ${#ips[@]}
3
[root@localhost array]#

shell数组小结

  • 应用场景:分析 文件中的数据
  • 数组创建
    • 直接赋值
    • arr=()
    • 通过arr=($(cat file))
  • 数组的使用
    • att[0]
    • 循环 ${arr[*]} ${arr[@] } $
    • for ip in $
    • c语言for循环(了解)
for ((i=0;i<${#arr[*]};i++)) ;do echo ${arr[$i]};done

标签:10.0,shell,echo,数组,array,root,localhost,赋值
From: https://www.cnblogs.com/xjianbing/p/17903013.html

相关文章

  • shell补-命令补缺-命令回顾(重要)
    shell补-命令补缺-命令回顾命令行概述参数(parameter)选项(option)选项:命令的不同功能参数:把是什么东西传递给命令(目录/文件....)命令选项(optiongs)参数parameterls-l/etc/hostssh-x/etc/init.d/networkrestart在linux命令行下查看命令......
  • shell补-特殊玩法-cut命令tar以及past和join
    shell补-特殊玩法-cut命令是awk的阉割版具体情况,后面详看shell补-特殊玩法-tar压缩指定目录案例案例:指定目录路径,脚本自动将该使用tar命令打包备份到/data目录#!/bin/bashread-p"Inputdirtobackup:"dirif[-d"${dir}"];then #tar-zcvf/data/$(date+%F_%H)......
  • shell补-特殊玩法-shell编程debug
    shell补-特殊玩法-shell编程debugdebug思想debug测试单步执行脚本自个调试,用注释,或者echo自个打印输出啥的,就这么搞bash-x整个脚本调试set与开关debug(适用于脚本或者命令行都可以)set-x开始debugset+x结束debug##在脚本启用set;set-x开始,set+x结尾......
  • shell补-循环案例-循环case
    shell补-循环案例-循环casecase结构条件的语法格式;一般应用菜单的功能case$变量名in"值1")###如果变量的值1,则执行此程序1;;"值2")###如果变量的值2,则执行此程序2;;###....省略其他分支YES|yes|Yes)#####此处的值,可以带些符号,比如|表示或者;也可以用[a-z]感觉......
  • shell补-特殊玩法-生成随机字符串
    shell补-特殊玩法-生成随机字符串方法1:md5sum方法2:tr+/dev/urandom方法3:内置变量RANDOM;#方法1[root@localhostser]#opensslrand-base64108/54arQpCmQ12Q==[root@localhostser]##方法2必备[root@localhostser]#date+%N|md5sum###给日期加密;可以写其......
  • shell补-特殊玩法-批量修改文件
    shell补-特殊玩法-批量修改文件几个其他方法;感觉最简单的就是rename###方法3rename#rename找谁,替换为什么范围[root@localhostrandom]#ll总用量0-rw-r--r--.1rootroot011月1716:03bcauiftqdr.mrxu.html-rw-r--r--.1rootroot011月1716:03dkjoyp......
  • shell补-特殊玩法-批量修改密码
    shell补-特殊玩法-批量修改密码写一个脚本批量添加用户和随机密码root@localhostusr]#bashrandomadduser.sh更改用户mrrxu00001的密码。passwd:所有的身份验证令牌已经成功更新。更改用户mrrxu00002的密码。passwd:所有的身份验证令牌已经成功更新。更改用户mrr......
  • shell补-特殊玩法-安全防护案例
    shell补-特殊玩法-安全防护案例案例1:编写一个shell脚本解决类DDOS攻击的生成案例,请更加web日志或者系统网络连接数,监控当某个ip并非连接数,若短时间内PV达到100(阈值),即调用防火墙命令封掉对应的ip.防火墙命令iptables-IINPUT-sIP地址-jdrop查看被封的ip:iptables-nL......
  • shell补-特殊玩法-优化显示加入成功失败标识函数
    shell补-特殊玩法-优化显示加入成功失败标识函数加载函数文件/etc/init.d/functionsaction"******"/bin/true####正常显示action"******"/bin/false####失败显示[root@localhost~]#./etc/init.d/functions[root@localhost~]#action......
  • shell补-变量再见变量
    shell补-变量-变量变量的本质shell补-变量常见的环境变量环境变量含义备注LANGlanguage记录系统字符集语言zh_CN.UTF-8en_US.UTF-8localectl(centos7)修改文件/etc/sysconfig/i18n(centos6.x)PS1命令行格式PATH命令路径执行命令,系统会在PATH路径......