【发布时间】:2021-07-21 02:33:50
【问题描述】:
在做一个基本的 shell 脚本时,我无法使用 curl 获取文件的长度,然后将其分割,以及文本:
syntax error: invalid token operator (error token is"
不断出现。
简化的代码是:
head=$(curl -sI $dir | awk '/Content-Lenth/{print $2}')
res=$(($head/3))
我一直在阅读类似问题的解决方案,他们说删除变量可能在其末尾的\r,所以我把它放在两行的中间,但问题仍然存在:
head=${head//\r}
知道为什么会这样吗?是因为末尾有一个\r 字符吗?如果是这样,如何去除?
【问题讨论】:
-
听起来有点像Difference between sh and bash;你到底是如何运行这个脚本的?数据中的 DOS 回车不会在脚本中产生语法错误(但您需要
$'\r'而不仅仅是\r)。 -
显示完整的错误信息。
-
@Barmar /3") 语法错误:算术运算符无效(错误标记为“
-
也许您应该在第一行之后临时添加
echo "$head",这样您就可以看到该变量实际包含的内容。 -
注意顺便说一句:
Content-Lenth[原文如此] ... ...