当前位置: 首页 > news >正文

你了解网站建设吗 软文案例宁夏建设职业技术学院官方网站

你了解网站建设吗 软文案例,宁夏建设职业技术学院官方网站,福建建设厅官网,计算机科学与技术 开题报告 网站建设数组#xff0c;逻辑判断以及循环1. 概述 大家好#xff0c;我又来了。今天呢我们继续学习shell相关的知识。还是老样子我们先回顾下上一次【脚本交互 以及表达式】学习到的知识 登录shell 关联配置文件什么是子shellumask 修改默认权限read 基础表达式 简单计算表达式expr 计…数组逻辑判断以及循环1. 概述 大家好我又来了。今天呢我们继续学习shell相关的知识。还是老样子我们先回顾下上一次【脚本交互 以及表达式】学习到的知识 登录shell 关联配置文件什么是子shellumask 修改默认权限read 基础表达式 简单计算表达式expr 计算bc 计算测试 表达式逻辑表达式字符串表达式文件表达式数字表达式测试进阶表达式逻辑组合表达式 我们简单回顾了下上次学习的内容。废话不多说了接下来让我们一起学习新的内容 2. 数组 2.1 格式定义 格式 # 在Shell中用括号来表示数组数组元素用“空格”符号分割开。定义数组的语法格式 array_name(value1 ... valuen)格式解读 单行定义 array_name(value0 value1 value2 value3)多行定义 array_name(value0value1value2value3 )单元素定义 array_name[0]value0 array_name[1]value1 array_name[2]value22.2 具体案例 单行定义案例 [vagrantlocalhost test003]$ echo ${array1}[vagrantlocalhost test003]$ array1(11 22 33 44 55) [vagrantlocalhost test003]$ echo ${array1} 11 [vagrantlocalhost test003]$ echo ${array1[]} 11 22 33 44 55 [vagrantlocalhost test003]$ 多行定义案例 [vagrantlocalhost test003]$ echo ${array2[]}[vagrantlocalhost test003]$ array2() [vagrantlocalhost test003]$ array2(aabbccdd) [vagrantlocalhost test003]$ echo ${array2[]} aa bb cc dd [vagrantlocalhost test003]$ 单元素定义案例 [vagrantlocalhost test003]$ echo ${array3[]}[vagrantlocalhost test003]$ array3[0]bb [vagrantlocalhost test003]$ array3[1]ff [vagrantlocalhost test003]$ array3[2]ee [vagrantlocalhost test003]$ echo ${array3[]} bb ff ee [vagrantlocalhost test003]$ 命令行定义案例 [vagrantlocalhost test003]$ echo ${array4[]}[vagrantlocalhost test003]$ array4$(ls ../) [vagrantlocalhost test003]$ echo ${array4[]} test001 test002 test003 [vagrantlocalhost test003]$ 2.3 多种取值方式 格式 基于索引找内容读取数组元素值可以根据元素的下标值来获取语法格式如下${array_name[index]}${array_name[]:起始位置:获取数量} 注意获取具体的元素内容指定其下标值从0开始获取所有的元素内容下标位置写或者*实例 [vagrantlocalhost test003]$ num_list(123 234 345 456 567) [vagrantlocalhost test003]$ echo ${num_list[]} 123 234 345 456 567 [vagrantlocalhost test003]$ echo ${num_list[]:1:3} 234 345 456 [vagrantlocalhost test003]$ 2.4 获取数组长度 格式 在变量前面添加符号# ${#num_list[0]}实例 [vagrantlocalhost test003]$ echo ${num_list[]} 123 234 345 456 567 [vagrantlocalhost test003]$ echo ${#num_list[]} 5 [vagrantlocalhost test003]$ 2.5 获取系统所数组 格式 declare -a具体实例 [vagrantlocalhost test003]$ declare -a declare -a BASH_ARGC() declare -a BASH_ARGV() declare -a BASH_LINENO() declare -ar BASH_REMATCH() declare -a BASH_SOURCE() declare -ar BASH_VERSINFO([0]4 [1]2 [2]46 [3]2 [4]release [5]x86_64-redhat-linux-gnu) declare -a DIRSTACK() declare -a FUNCNAME() declare -a GROUPS() declare -a PIPESTATUS([0]0) declare -a array1([0]11 [1]22 [2]33 [3]44 [4]55) declare -a array2([0]aa [1]bb [2]cc [3]dd) declare -a array3([0]bb [1]ff [2]ee) declare -a num_list([0]123 [1]234 [2]345 [3]456 [4]567) [vagrantlocalhost test003]$ 2.6 数组替换/ 数组删除 格式 元素内容替换array_name[index]值 注意在修改元素的时候index的值一定要保持准确元素部分内容替换可以参考字符串替换格式${array_name[index]/原内容/新内容} 注意默认是演示效果原数组未被修改如果真要更改需要结合单元素内容替换删除单元素unset array_name[index] 删除整个数组unset array_name具体案例 [vagrantlocalhost test003]$ unset array6 [vagrantlocalhost test003]$ array6(11 22 aa bb cc ddd ggg) [vagrantlocalhost test003]$ echo ${array6} 11 [vagrantlocalhost test003]$ echo ${array6[]} 11 22 aa bb cc ddd ggg [vagrantlocalhost test003]$ array6[0]99 [vagrantlocalhost test003]$ echo ${array6[]} 99 22 aa bb cc ddd ggg [vagrantlocalhost test003]$ array6[5]${array6[5]/ddd/ert} [vagrantlocalhost test003]$ echo ${array6[]} 99 22 aa bb cc ert ggg [vagrantlocalhost test003]$ unset array6[5] [vagrantlocalhost test003]$ echo ${array6[]} 99 22 aa bb cc ggg [vagrantlocalhost test003]$ unset array6 [vagrantlocalhost test003]$ echo ${array6[]}[vagrantlocalhost test003]$ 3. 逻辑判断 3.1 if 判断 3.1.1 格式 单分支格式 单路决策 - 单分支if语句样式if [ 条件 ]then指令fi特点单一条件只有一个输出双分支格式 双路决策 - 双分支if语句样式if [ 条件 ]then指令1else指令2fi特点单一条件两个输出多分支格式 多路决策 - 多分支if语句样式if [ 条件 ]then指令1elif [ 条件2 ]then指令2else指令3fi特点n个条件n1个输出单行格式 单行命令写法if [ 条件1 ]; then 指令1; elif [ 条件2 ]; then 指令2; ... ; else 指令n; fi3.1.2 实例 单行实例 #!/bin/bash# 单个if 判断 gender$1if [ ${gender} 男 ] thenecho 你是男的exit fiecho 你不是男的 双分支实例 #!/bin/bash# 双分支实例gender$1if [ ${gender} nan ] thenecho 你是男的 elseecho 你是女的 fi 多分支实例 #!/bin/bash# 多分支实例gender$1if [ ${gender} nan ] thenecho 你是男的 elif [ ${gender} nv ] thenecho 你是女的 elseecho 我不知道你的性别 fi3.1.3 经典实例 3.1.3.1 奇偶数 判断 #!/bin/bash# 计算判断# 引导客户输入一个数字 read -p 请输入一个数字 num# 判断是基数 还是 偶数 if (( ${num} % 2 0 )) thenecho 你是偶数 elseecho 你是奇数 fi3.1.3.2 正则 判断 #!/bin/bash# 表示正则判断read -p 您输入一个字符串: stringif [[ ${string} v* ]] thenecho 你是满足以v开头的 elseecho 你不满足以v开头 fi3.2 case 判断 格式 case 变量名 in值1)指令1;;...值n)指令n;; esac实例 #!/bin/bash# 进行case 练习判断type$1case ${type} in1)echo 你是1;;2)echo 你是2;;*)echo 你是几我也不知道;; esac3.3 for 循环 格式 循环逻辑语法解析关键字 [ 条件 ]do执行语句done注意这里的关键字主要有四种for - 循环遍历一个元素列表while - 满足条件情况下一直循环下去until - 不满足条件情况下一直循环下去select - 一种特殊的循环遍历侧重于遍历用户输入一般结合case等语句使用实例1遍历命令列表 #!/bin/bash# 进行for循环for i in $(ls /) doecho 您的路径是${i} done实例2遍历参数列表 查看脚本内容 [rootlocalhost ~]# cat for_arg_list.sh #!/bin/bash # 功能脚本参数列表 for循环 for i in $ doecho 列表元素: ${i} done脚本执行后效果 [rootlocalhost ~]# /bin/bash for_arg_list.sh 1 2 3 列表元素: 1 列表元素: 2 列表元素: 33.3.1 多种案例 案例1 #!/bin/bash# 进行循环案例for i in yuwen shuxue lishi doecho 列表元素: ${i} done案例2 #!/bin/bash# 循环for i in {1..3} doecho 元素内容是: ${i} done案例3 #!/bin/bash# 实现脚本参数遍历for i in $ doecho 元素内容是: ${i} done3.3.2 综合实践 随机生成用户 #!/bin/bash# 随机创建用户user_file/tmp/user.txt# 检查是否是文件 [ -f ${user_file} ] ${user_file}# 开始批量创建用户 for i in {1..5} do# 创建密码pwdaaa$RANDOM# 创建用户sudo useradd user-${i}# 设置密码echo ${pwd} | passwd --stdin user-${i} /dev/null 21# 开始输出信息echo 创建账号是: user-${i}, 该用户的密码是: ${pwd}echo -e 创建的账号是: \033[31;41muser-${i}\033[0m 该用户的密码是: \033[31;41m${pwd}\033[0mdone#!/bin/bash# 进行批量的用户删除for i in {1..5} dosudo userdel -r user-${i}echo 用户【user-${i}】删除成功 done对特定的网段的主机进行扫描 #!/bin/bash# 对特定ip进行扫描base_net192.168.56 net_file/tmp/host.txt# 判断文件是否存在 if [ -f ${net_file} ] thensudo echo ${net_file} fifor i in {1..100} do# 开始检测主机host_status$(ping -c1 -W1 ${base_net}.${i} /dev/null 21 echo UP || echo DOWN)sudo echo ${base_net}.${i} 主机状态: ${host_status} ${net_file}sudo echo ${base_net}.${i} 主机状态: ${host_status} done# 输出信息 live_num$(grep UP ${net_file} | wc) unlive_num$(grep DOWN ${net_file} | wc)echo -e \e[31m${netsub}.0 网段主机存活情况\e[0m echo ------------------------------------ echo -e \e[32m${netsub}.0 网段存活主机数量: ${live_num}\e[0m echo -e \e[32m${netsub}.0 网段异常主机数量: ${unlive_num}\e[0m3.3.3 循环赋值 #!/bin/bash# 进行循环赋值all_sum0 odd_sum0 even_sum0for i in {1..100} dolet all_sumi donefor i in {1..100..2} dolet odd_sumi donefor i in {0..100..2} dolet even_sumi doneecho -e 所有的数字之和是: \033[31m${all_sum}\033[0m echo -e 所有的数字之和是: \033[31m${odd_sum}\033[0m echo -e 所有的数字之和是: \033[31m${even_sum}\033[0m3.3.4 (()) 版的双括号的语法 #!/bin/bash# 使用特殊符号(()) 来进行计算all_sum0for ((i0; i100; i1)) dolet all_sumi doneecho -e 计算结果是: \033[31m${all_sum}\033[0m3.3.4.1 综合实践命令行进度条数字 #!/bin/bash# 实现数字进度条for ((i0; i100; i1)) do// 防止信息输出的叠加采用\e[4D每次输出信息的时候光标左移4个位置信息不会出现叠加printf \e[4D%3d%% $isleep 0.1 done3.3.4.2 综合实践实现进度条 #!/bin/bash# 实现数字进度条str# arr(| / - \\)for ((i0; i50; i1)) dolet indexi%4printf [%-50s][%d%%]%c\r $str $(($i*2)) ${arr[$index]}sleep 0.2str# doneecho 3.3.4.3 综合实践保存数字最大值 以及最小值 #!/bin/bash # 设定随机数比大小# 设定基本变量 declare -i min max declare -a nums# 设定大小比较 for ((i0;i10;i)) do# 将随机数添加到数组中nums[$i]$RANDOM# 设定初始值[ $i -eq 0 ] min${nums[0]} max${nums[0]}# 设定最大值[ ${nums[$i]} $max ] max${nums[$i]}# 设定最小值[ ${nums[$i]} $min ] min${nums[$i]} done echo -e \e[31m 随机数的统计信息\e[0m echo ------------------------------ echo -e \e[32m所有的随机数${nums[]} echo -e 最大的随机数${max} echo -e 最小的随机数${min}\e[0m3.4 while 循环 基础语法 场景只要条件满足就一直循环下去while [ 条件判断 ]do执行语句done具体实例 #!/bin/bash# 通过while 循环来执行all_num0 odd_num0 even_num0i0 while (( i 100 )) dolet all_numilet i donei0 while ((i100)) do((odd_numi))((i2)) donei1 while ((i100)) do((even_numi))((i2)) doneecho 累加的和是${all_num} echo 奇数累加的和是: ${odd_num} echo 偶数累加的和是: ${even_num}3.4.1 while read 用法 格式 while中有一种特殊的语法while read line 它可以从文本中逐行读取相关的内容然后存储到一个临时变量line中然后我们后续就可以逐行对文本内容进行操作 样式1 cat提前读 cat a.log | while read line do echo File: ${line} done 实例1 #!/bin/bash# 通过while read 逐行读取i0env | while read line do((i1))echo 第${i}行内容是: ${line} done实例2 exec 0 a.log while read line do echo ${line} done实例3 while read line doecho File: ${line} done a.log3.5 until循环 使用方式跟while保持一致。 格式 场景只要条件不满足就一直循环下去until [ 条件判断 ]do执行语句done3.6 select 条件选择 语法格式 select 变量名 in input_list do 循环语句 done语法解读1 select 从 input_list 获取相关的值然后输出到一个菜单列表元素格式如下序号) 菜单条目2 用户输入信息的标识使用PS3 的值默认值是#?。我们可以定制PS3环境变量3 如果用户输入菜单序号则输出菜单内容4 select的退出方式有很多种强制退出CtrlD 组合键普通退出结合break方式实例1 #!/bin/bash# 通过select 进行简单选择echo 您喜欢的系统是 select osname in HarmonyOS Linux Windows Ubuntu doecho 您选择的系统是: ${osname}exit done实例2 #!/bin/bash# 修改输入指令PS3请选择菜单序号: echo 请输入您喜欢的系统: select osname in os linux window doecho 您选择的操作系统是: ${osname}exit done
http://www.dnsts.com.cn/news/138046.html

相关文章:

  • 怎么用flash做网站网站的域名做邮箱
  • 网站短期培训学校网站建设需求说明书
  • 怎么提高自己网站的知名度WordPress5更改logo
  • 空间站 对接一级建造师报考条件2022考试时间
  • 网站页面优化方法有哪些内容企业如何注册网站
  • 石家庄市市政建设工程公司网站中国制造网app官方下载
  • 怎么提高网站加载速度专业微网站开发
  • 教育网站平面设计网站建设初学软件
  • 山东省建设协会网站网站加入百度广告联盟
  • 哪个网站是专门做招商的平台外包公司与劳务派遣
  • 网站对图片优化网站建设心得体会
  • 长沙如何做网站网站建设 公司排名
  • 万齐网站建设阅读网站建设
  • 路由侠怎么做网站映射观澜小学 网站建设
  • 天津住房与城乡建设部网站下列哪个软件属于网页制作软件
  • c2c网站建设策划书网页设计师的职业规划
  • 网站的衡量标准优秀电商网站
  • 网站推广与搜索引擎优化看国外的视频用什么浏览器
  • 做机械设备的做哪个网站推广较好书店网站建设策划书总结
  • 做网站的生产方式佛山+客户端官网
  • 什么是优化问题长沙seo网站排名优化公司
  • 网站建设教程集体苏州久远网络湖南大钧工程建设有限公司网站
  • 开发公司认领工程网站做软件工资高还是网站
  • 网站调用字体wordpress咋建站
  • 徐州地区网站建设网络营销推广建议
  • 哈尔滨网站制作方案wordpress手机 ios
  • 成都专业网站设计公司建网站的步骤和方法
  • 做地方网站能赚钱吗怎么做婚庆网站平台
  • 临沂企业网站做网站开发要学什么语言
  • g4560做网站服务器大型企业网站设计案例