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)测试

相关推荐
同聘云6 分钟前
阿里云国际站独立服务器有哪些优点?独立服务器和云服务器的区别
服务器·阿里云·云计算
jaycyj9 分钟前
Linux 高级命令
linux
冉佳驹10 分钟前
Linux ——— 网络开发核心知识与协议实现详解
linux·http·https·udp·json·tcp·端口号
HalvmånEver11 分钟前
MySQL数据库基础入门总结(从0到1)
linux·数据库·mysql
小猪咪piggy11 分钟前
【接口自动化】(2) pytest 测试框架
运维·自动化·pytest
Lugas Luo16 分钟前
Kernel 5.10 ATA 驱动分析与车载环境诊断
linux·嵌入式硬件
顶点多余18 分钟前
死锁+线程安全
linux·开发语言·c++·系统安全
饺子大魔王的男人20 分钟前
Linux 下 Apache RocketMQ 部署与公网访问实现指南
linux·apache·rocketmq
A.A呐26 分钟前
【Linux第二十五章】高级IO
linux·运维·服务器
zzzsde27 分钟前
【Linux】库的制作与使用(2)ELF&&静态链接
linux·运维·服务器