基础方法
#!/bin/bash
# 方法的执行顺序,以逗号分隔
sequence=step3,step1,step2
# 定义3个方法
step1()
{
echo "step1"
}
step2()
{
echo "step2"
}
step3()
{
echo "step3"
}
# 读取以逗号分隔的变量并存为列表
step_list=`echo ${sequence//,/ }`
# 逐行读取列表执行
echo -e "${step_list}" | while read line
do
read -r step1 step2 step3 <<< $line
${step1}
${step2}
${step3}
done
执行结果
进阶版本,函数存在传参,通过遍历执行
#!/bin/bash
# 方法的执行顺序,以逗号分隔
sequence=step3,step1,step2
# 定义3个方法
step1()
{
args1=$1
args2=$2
echo "$args1 $args2 step1"
}
step2()
{
args1=$1
args2=$2
echo "$args1 $args2 step2"
}
step3()
{
args1=$1
args2=$2
echo "$args1 $args2 step3"
}
# 读取以逗号分隔的变量并存为列表
step_list=`echo ${sequence//,/ }`
# 遍历列表和从字典取执行内容
for each_step in $step_list
do
declare -A step_dict
step_dict=([step1]="step1 step1 is" \
[step2]="step2 step2 is" \
[step3]="step3 step3 is")
${step_dict[$each_step]}
done
执行结果