首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我在循环中初始化数组时,为什么我的数组没有包含所有的值?

当我在循环中初始化数组时,为什么我的数组没有包含所有的值?
EN

Stack Overflow用户
提问于 2018-05-17 18:06:34
回答 1查看 25关注 0票数 0

实际上,我希望获得一个日期数组,在if语句中,我将数组的i元素设置为使用if条件验证的日期。

代码语言:javascript
运行
复制
ls muonic_data|(while read line; do
    myYears[i]=$(echo $line | cut -f1 -d '-')
    myMonths[i]=$(echo $line | cut -f2 -d '-')
    myDays[i]=$(echo $line | cut -f1 -d '_' | cut -f3 -d '-')
    myDate=${myYears[i]}-${myMonths[i]}-${myDays[i]
    echo "Mes dates : " $myDate
    if [[ $myDate =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]];
    then  
            myTab[i]=$myDate
            echo $myTab
    fi

done
echo "Mon tableau : "${myTab[*]}
expect recupFileName.exp ${myTab[@]}
)   

当我在脚本末尾运行echo时,它只显示我的最新日期,而不是日期数组。这一点我真的很困惑。

代码语言:javascript
运行
复制
root@raspberrypi:~# ./recupFileName.sh
Mes dates :  2017-11-30
2017-11-30
Mes dates :  2017-11-30
2017-11-30
Mes dates :  2018-03-07
2018-03-07
Mes dates :  2018-04-13
2018-04-13
Mes dates :  2018-05-02
2018-05-02
Mes dates :  2018-3-7
Mes dates :  2018-4-13
Mes dates :  2018-5-2
Mon tableau : 2018-05-02

那么我该怎么做才能得到我的日期数组呢?

EN

回答 1

Stack Overflow用户

发布于 2018-05-17 18:29:57

尝尝这个

代码语言:javascript
运行
复制
ls muonic_data|(while read line; do
myYears[i]=$(echo $line | cut -f1 -d '-')
myMonths[i]=$(echo $line | cut -f2 -d '-')
myDays[i]=$(echo $line | cut -f1 -d '_' | cut -f3 -d '-')
myDate=${myYears[i]}-${myMonths[i]}-${myDays[i]
echo "Mes dates : " $myDate
var myTab = [];
if [[ $myDate =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]];
then  
        myTab[i]=
        myTab.push("$myDate");
        echo $myTab
fi

done
echo "Mon tableau : printf '%s ' "${myTab[@]}"
expect recupFileName.exp ${myTab[@]}
)   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50388755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档