shell编程基础入门-3

1、函数的使用

1.1 概述

函数:可以理解成是一个功能。

  • 好处:当有了解决某个问题的函数(功能)时,程序员就可以直接调用这
    个函数直接解决问题
  • 分类
    • 内置函数:编程语言自带的函数
    • 自定义函数:自己编写的函数
##	自定义函数格式
function 函数名字 ()
{
	程序段/命令;
	return 结果
}
## 调用函数(使用其函数名即可)

1.2 函数的参数

  • 调用函数时可以向其传递参数
    • 在函数体内部,通过 $n 的形式来获取参数的值,例如 $1 表示第一个参数 $2 表示第二个参数…注意当 n>=10 时,需要使用 ${n} 来获取参数
#!/bin/bash

funWithParam()
{
echo "第一个参数为 $1"
echo "第二个参数为 $2"
echo "第十个参数为 $10"
echo "第十个参数为 ${10}"
echo "第十一个参数为 ${11}"
echo "参数总数有 $# 个"
echo "作为一个字符串输出所有参数 $*"
}
##	调用函数,并传递参数
funWithParam 1 2 3 4 5 6 7 8 9 567 890

在这里插入图片描述

1.3 函数的返回值

函数的返回值:函数内部在处理完所有问题后,需要有一个结果返回给调
用者

#! /bin/bash
function getMax(){
	if [ $1 -lt $2 ]; then
		return $2
	else
		return $1
	fi
}
echo "两个参数是:$1,$2"
getMax $1 $2
## 函数的返回值默认是存储在: $?
echo "最大值:$?"

在这里插入图片描述

2、数组

2.1 概述

  • 数组可以理解为是一个用来存放多个值的容器
  • 数组中存储的数据,通常可以称为:元素
  • 当数组中存储了多个元素后,就会给每一个元素添加一个编号(索引),从0 开始
## 语法格式
array_name=(value1 value2 value3 ...)

2.2 读取数组

## 读取元素值一般格式
${my_array[0]}
## 使用 @ 或 * 可以获取数组中的所有元素
${array_name[*]}
${array_name[@]}
## 获取数组长度的方法
${#array_name[*]}
${#array_name[@]}
#! /bin/bash
my_array=(A B C D 23 1 7 0)

echo "第一个元素为:${my_array[0]}"
echo "第五个元素为:${my_array[4]}"
echo "数组的元素为:${my_array[@]}"
echo "数组的元素个数为:${#my_array[@]}"

在这里插入图片描述

2.3 遍历数组

遍历:把数组中存储的元素依次取出

## 方式一
#!/bin/bash
my_arr=(AA BB CC)
# 利用for循环 遍历数组
for var in ${my_arr[*]} ; do
echo $var
done

## 方式二
#!/bin/bash
my_arr=(AA BB CC) 
## 获取数组的长度
my_arr_num=${#my_arr[*]} 
for((i=0;i<my_arr_num;i++));
do
echo ${my_arr[$i]}
done

在这里插入图片描述

3、加载其他文件的变量

## 脚本1
#!/bin/bash
echo "user  cpu  memory"
echo "$(whoami) $(top -bn1| grep "Cpu(s)" | awk '{print $2}') $(free -h|awk '/Mem/ {print $3}')"

## 脚本2
#!/bin/bash
./ceshi12.sh | while  read user cpu mem 
do
    if [ "$user" = "user"  ] ;then
       echo "user  cpu  memory hostname date"
         continue
    fi
    hostname=$(hostname)
    date=$(date +"%Y-%m-%d %H:%M:%S")
    echo "$user $cpu $mem $hostname $date"

done

在这里插入图片描述

总结

今天分享了函数(如何自定义函数)、数组(如何读取数组、遍历数组)以及脚本之间如何调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值