#!/bin/bash todo=(docker1 docker2 docker3) taskid=() function check(){ if [ "$1" = "docker1"];then taskid+=("install_docker1") elif [ "$1" = "docker2"];then taskid+=("install_docker2") else [ -f "/tmp/mb.sh" ] && taskid=+("install_docker3") fi } function run(){ for ido in ${todo[@]};do check $ido done echo ${taskid[@]} echo '{ "num":'\"${#taskid[@]}\"' }' } case $1 in *) run ;; esac 大概如上的代码,现在想向一个数组里添加数据问题,如果函数复杂点,貌似就 check 的数据就没加上,是不是用法有问题
