shell编程基础入门-3
文章目录
- 1、函数的使用
- 1.1 概述
- 1.2 函数的参数
- 1.3 函数的返回值
- 2、数组
- 2.1 概述
- 2.2 读取数组
- 2.3 遍历数组
- 3、加载其他文件的变量
- 总结
1、函数的使用
1.1 概述
函数:可以理解成是一个功能。
- 好处:当有了解决某个问题的函数(功能)时,程序员就可以直接调用这
个函数直接解决问题 - 分类
- 内置函数:编程语言自带的函数
- 自定义函数:自己编写的函数
## 自定义函数格式
function 函数名字 ()
{程序段/命令;return 结果
}
## 调用函数(使用其函数名即可)
1.2 函数的参数
- 调用函数时可以向其传递参数
- 在函数体内部,通过 $n 的形式来获取参数的值,例如 $1 表示第一个参数 $2 表示第二个参数…注意当 n>=10 时,需要使用 ${n} 来获取参数
#!/bin/bashfunWithParam()
{
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 ]; thenreturn $2elsereturn $1fi
}
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
doif [ "$user" = "user" ] ;thenecho "user cpu memory hostname date"continuefihostname=$(hostname)date=$(date +"%Y-%m-%d %H:%M:%S")echo "$user $cpu $mem $hostname $date"done
总结
今天分享了函数(如何自定义函数)、数组(如何读取数组、遍历数组)以及脚本之间如何调用。