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:谢谢,重写了。