意外令牌附近的语法错误`date =`echo $ 1 | cut -d"。" -f1-3`'

时间:2016-05-23 13:54:26

标签: bash

我多次编写此函数,但无法正确使用..看起来像一个小的语法错误,但无法修复它。

    function hadleDate{
    date=`echo $1|cut -d"." -f1-3`
    for element in $date; do
        size=${#element} 
        if [[ $element == 0? ]]; then
            echo -n $element|cut -c2-
        elif [[ $size -eq 4 ]]; then 
            echo $element
        else
            echo -n $element
        fi
    done
}
mos="14.03.2013"
echo handleDate $mos

3 个答案:

答案 0 :(得分:4)

声明中的函数名称不能直接跟{。应该有空格或括号。

function hadleDate () {
#                  ~~

答案 1 :(得分:0)

您可能需要访问shellcheck.net以获取语法错误。

你错过了,为“for”和“for”完成了if和

 function hadleDate {
    date=`echo $1|cut -d"." -f1-3`
    for element in $date; do
        size=${#element}
        if [[ $element == 0? ]]; then
            echo -n $element|cut -c2-
        elif [[ $size -eq 4 ]]; then
            echo $element

        fi
    done
    }
    mos="14.03.2013"
    echo handleDate $mos

答案 2 :(得分:0)

您的handleDate函数尝试在字段中剪切日期并将它们放入数组中。您的变量日期不是数组,只是一个字符串 你可以不用这样的数组:

raspivid -t 10000 -o video.h264 ; ./Detection video.h264