shell 数组问题

2017-11-16 14:59:35 +08:00
 ysicing
#!/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 的数据就没加上,是不是用法有问题

1236 次点击
所在节点   Bash
2 条回复
SoloCompany
2017-11-16 22:51:13 +08:00
你就不能注意一下格式吗,要知道 shell 的方括号可不是你想的那么简单,右方括号前面缺少空格科室会死人的
ysicing
2017-11-17 10:17:44 +08:00
@SoloCompany 哦哦,抱歉了,没注意

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/406935

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX