linux命令:bash编程之数组

简介:

变量:一段内存空间,用于存储字符,数字等信息.


数组:


如何申明一个数组:

赋值方法1:

AA[0]=jerry

AA[1]=tom

AA[3]=wendy

AA[6]=natasha


赋值方法2:

AA=(jerry "tom obama" wendy natasha)


AA=([0]=jerry [1]=tom [2]=wendy [6]=natasha)


AA[3]=selina

AA[4]=nikita


如何获取数组中非空的字符个数

${#AA[*]}  或者 ${#AA[@]}


如何获取数组中某一组值的字符长度

${#AA[0]} :表示数组中第一组值的字符长度

${#AA[1]} :表示数组中第二组值的字符长度

.....

${#AA[N]} :表示数组中第N-1组值的字符长度




脚本实例:


实例一: 

写一个脚本:随机从10个同学们中选择一位出来回答问题。

vim student.sh

#!/bash/bin

#

#   随机从10个同学选择一个,并显示出来。


AA=(jerry "tom stail" wendy natasha kely selina john jack xiaowu "A dong")


INDEX=$[$RANDOM%10]

echo "${AA[$INDEX]}"


附加:

从10个同学里面随机十次,并显示出他们的名字


vim student.sh

#!/bash/bin

#

#   随机从10个同学选择一个,并显示出来。


AA=(jerry "tom stail" wendy natasha kely selina john jack xiaowu "A dong")


for I in {1..10}; do

INDEX=$[$RANDOM%10]

echo "${AA[$INDEX]}"

done

[root@john script]# bash student.sh 

wendy

tom stail

jerry

tom stail

kely

natasha

xiaowu

jack

kely

natasha


实例二:

写一个脚本:显示10个随机数,并从中选出最大数;


vim findmax.sh

#!/bash/bin

#

#  显示10个随机数,并从中选出最大数;


for I in {0..9}; do

 ARRAY[$I]=$RANDOM

 echo -n "${ARRAY[$I]} "
 sleep 1

done

echo


declare -i MAX=${ARRAY[0]}

INDEX=${#ARRAY[*]}

for I in `seq 1 $[$INDEX-1]`; do

 if [ $MAX -lt ${ARRAY[$I]} ]; then

   MAX=${ARRAY[$I]}

 fi

done


echo "The MAX Number is $MAX !"

执行结果:

[root@john script]# sh findmax1.sh 

9794 23744 258 23323 26204 15429 3985 5762 26162 24422 

The MAX Number is 26204 !


实例三:

写一个脚本,选择随机生成0-39中不相同的数字;

#!/bash/bin

#

#   输入需要显示的数字个数,并显示,且不能重复。

 read -p "The element numbers[1-39]: " ELENUM

 declare -a ARRAY                 #申明一个数组

 

 function COMELE {

   for J in `seq 0 $[${#ARRAY[@]}-1]`; do

      if [ $1 -eq ${ARRAY[$J]} ]; then

       return 1

      fi

   done

   return 0

 }

 

 for I in `seq 0 $[$ELENUM-1]`; do

      while true ; do

        ELEMENT=$[$RANDOM%40]

        COMELE $ELEMENT

     if [ $? -eq 0 ]; then

       break

     fi

   done

   ARRAY[$I]=$ELEMENT

  

   echo "${ARRAY[$I]}"

  done














本文转自wang650108151CTO博客,原文链接:http://blog.51cto.com/woyaoxuelinux/1912102 ,如需转载请自行联系原作者


相关文章
|
5天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
22 3
|
5天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
17 2
|
5天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
23 3
|
8天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
33 6
|
9天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
22 7
|
9天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
23 4
|
8天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
11 2
|
6月前
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如"password"、"confidential"、"secret"),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
176 0
|
6月前
|
Linux Shell Windows
4:Bash shell命令-步入Linux的现代方法
4:Bash shell命令-步入Linux的现代方法
98 0
|
Ubuntu 安全 Linux
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
266 0