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

LINUX--shell

函数

格式:

func() {

        command

}

 function 关键字可写,也可不写。

示例 1:

#!/bin/bash

func() {                #定义函数

        echo "Hello $1"

}

func world                #执行主文件

# bash test.sh

Hello world

 数组

数组是相同类型的元素按一定顺序排列的集合。

格式:

array=(元素 1 元素 2 元素 3 ...)

用小括号初始化数组,元素之间用空格分隔。

定义方法 1:初始化数组

array=(a b c)

定义方法 2:新建数组并添加元素

array[下标]=元素 定义方法

3:将命令输出作为数组元素

array=($(command))

取所有元素:

# echo ${array[*]} # *和@ 都是代表所有元素

a b c

获取元素下标:

# echo ${!a[@]}

0 1 2

获取数组长度:

# echo ${#array[*]}

3

获取第一个元素:

# echo ${array[0]}

a

获取第二个元素:

# echo ${array[1]}

b

获取第三个元素:

# echo ${array[2]}

c

添加元素:

# array[3]=d # echo ${array[*]}

a b c d

添加多个元素:

# array+=(e f g) # echo ${array[*]}

a b c d e f g

删除第一个元素:

# unset array[0]

# 删除会保留元素下标

# echo ${array[*]}

b c d e f g

删除数组:

# unset array

示例 1:讲 seq 生成的数字序列循环放到数组里面

 #!/bin/bash

for i in $(seq 1 10);

do

        array[a]=$i

        let a++

done

echo ${array[*]}

# bash test.sh

1 2 3 4 5 6 7 8 9 10

 实验:

 for ping测试子网段的主机
网段由用户输入,例如用户输入192.168.101 ,则ping 192.168.101.125 — 192.101.131
UP: /tmp/host_up.txt
Down: /tmp/host_down.txt

(1)创建脚本文件

[root@localhost scripts]# vim ip_add.sh 

(2)编辑脚本文件

#!/bin/bash
##############################################################
# File Name: ip_add.sh
# Version: V1.0
# Author: Gao_XY
# Email: Gao_XY@163.com
# Organization:https://blog.csdn.net/ens33?type=blog
# Created Time : 2024-12-23 14:34:24
# Description:
##############################################################
address='192.168.101.'  #定义主机位ip变量


for i in {1..254}       #循环,定义网络位ip变量
do
ip=${address}$i         #定义ip
        if ping -c 2 -i 0.1 $ip &>/dev/null    

        #测试能否ping通,-c ping2次,-i 间隔0.3秒。将结果放入黑洞
                then
                        echo $ip "ip address is up">>/tmp/host_up.txt  

                        #通过的结果追加至/tmp/host_up.txt文件中
                else
                        echo $ip "ip address is down">>/tmp/host_down.txt      

                        #不通过的结果追加至/tmp/host_down.txt文件中
        fi
let i++                 #没执行循环一次,网络位就累加一次直至结束
done

 

(3)测试

 

http://www.lryc.cn/news/508851.html

相关文章:

  • TCP常见问题
  • OpenCV学习——图像融合
  • 网速、续航双在线!2024随身WiFi品牌精选推荐!格行按键切三网值得买吗?
  • ubuntu18.04连接不上网络问题
  • 访谈积鼎科技总经理:国产CFD软件发展与未来趋势展望
  • 【Linux知识】exec命令行详解
  • 【学术小白的学习之路】基于情感词典的中文句子情感分析(代码词典获取在结尾)
  • Linux 中 grep、sed、awk 命令
  • 一起考高项啊--现代化基础设施(工业互联网)
  • python学opencv|读取图像(二十)使用cv2.circle()绘制圆形进阶
  • 期权懂|如何减小个股期权交易中的风险?
  • ubuntu20.04 wget下载--段错误 (核心已转储)
  • 怎么样保持mysql和redis数据一致性
  • 剑指Offer|LCR 013. 二维区域和检索 - 矩阵不可变
  • aosp15 - Activity生命周期切换
  • vxe-table 虚拟滚动的动态响应
  • quasar dev 命令卡住很久
  • 黑盒RCE测试 异或测试
  • kotlin中泛型中in和out的区别
  • c# iis 解决跨域问题
  • MySQL版本对应的mysql-connector-java版本下载地址
  • 【读书笔记】《论语别裁》爱与罪
  • uniApp上传文件踩坑日记
  • Webhook 是什么?详解其工作原理
  • log4j2漏洞复现(CVE-2021-44228)
  • tcpdump抓包分析
  • LearnOpenGL学习(碰撞检测,粒子)
  • 操作系统(24)提高磁盘I/O速度的途径
  • C/C++基础知识复习(45)
  • 现代C++锁介绍