Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 意外标记“date=”echo$1“cut-d”附近出现语法错误&引用-f1-3`';_Bash - Fatal编程技术网

Bash 意外标记“date=”echo$1“cut-d”附近出现语法错误&引用-f1-3`';

Bash 意外标记“date=”echo$1“cut-d”附近出现语法错误&引用-f1-3`';,bash,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

这个函数我写了很多次,但都没有写对。看起来有点语法错误,但无法修复

    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 () {
#                  ~~

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

function hadleDate () {
#                  ~~

您可能希望访问shellcheck.net以了解语法错误

你错过了,fi代表if,完成了“for”


您可能希望访问shellcheck.net以了解语法错误

你错过了,fi代表if,完成了“for”


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-%s\n" "${mm}" "${dd}" "${yyyy}"
}

mos="14.03.2013"
handleDate "${mos}"
函数句柄{
#用点剪切字段,并使用$1作为读取的输入。

IFS=.read mm dd yyyy您的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-%s\n" "${mm}" "${dd}" "${yyyy}"
}

mos="14.03.2013"
handleDate "${mos}"
函数句柄{
#用点剪切字段,并使用$1作为读取的输入。

IFS=.read mm dd yyyy在尝试了几件事情后,您是否可以发布您的努力?1.在脚本开头添加一行
set-x
,然后运行以查看问题的根源2.复制粘贴代码并修复错误警告看到了。还更改了打字错误:不是hadle…而是handle…在尝试了几件事情后,您可以发布您的努力吗?1.在脚本开头添加一行
set-x
,然后运行以查看问题的根源2.复制粘贴您的代码并修复错误警告看到了。还更改了拼写:不是hadle…而是handle…最相关的是,他忘记了hadleDate和
之间的空格{
。是的,确实如此。底线是,在发布到这里之前应该进行外壳检查:)对不起,伙计们,我是这里的新手,还在学习如何在这里工作:)最相关的是,他忘记了
hadleDate
之间的空格{
。是的,确实如此。底线是在发布之前应该进行外壳检查:)对不起,伙计们,我是这里的新手,仍在学习如何在这里工作:)它们是可选的
函数
关键字,但
前面的空格{
不是。@chepner:谢谢,重写了。它们是可选的,带有
函数
关键字,但是
{
前面的空格不是。@chepner:谢谢,重写了。