意外标记"date="echo $1|cut -d "." -f1-3"附近的语法错误



我多次写这个函数,但不能正确。看起来像一个小语法错误,但无法修复它。

    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

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

function hadleDate () {
#                  ~~

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

function handleDate {
   # Cut fields with dots and use $1 as input for the read.
   IFS=. read mm dd yyyy <<< "${1}"
   # Using printf can cut of the zeroes by converting the string to a number
   printf "%d-%d-%sn" "${mm}" "${dd}" "${yyyy}"
}
mos="14.03.2013"
handleDate "${mos}"
您可能需要

访问 shellcheck.net 以了解语法错误。

你错过了,如果和"为"做"

 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

相关内容

  • 没有找到相关文章

最新更新