
#!/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 的数据就没加上,是不是用法有问题
1 SoloCompany 2017-11-16 22:51:13 +08:00 你就不能注意一下格式吗,要知道 shell 的方括号可不是你想的那么简单,右方括号前面缺少空格科室会死人的 |
2 ysicing OP @SoloCompany 哦哦,抱歉了,没注意 |