gpt4 book ai didi

bash - 不可能的 bash : syntax error: invalid arithmetic operator (error token is "")

转载 作者:行者123 更新时间:2023-11-29 09:23:44 27 4
gpt4 key购买 nike

我知道这里有很多类似的问题,但这很特别,请继续阅读。

我有一个 bash 脚本,它除了比较两个数字外什么都不做,基本上是这样的:

[[ 1408039118 -lt 1401215749 ]]

现在,运行该脚本会抛出以下错误:

/usr/bin/pacaur: line 179: 1408039118: syntax error: invalid arithmetic operator (error token is "")

所以我明白一定是哪里出了问题,这是我的第 179 行:

[[ "${depsAlastmodified[$i]}" -lt 1401215749 ]] && note "f" $"no AUR metadata for ${colorR}${depsAname[$i]}${reset} package"

通过 bash -x 运行它显示:

+ [[ 1408039118 -lt 1401215749 ]]
/usr/bin/pacaur: line 179: 1406628774: syntax error: invalid arithmetic operator (error token is "")

这确实没有任何明显的错误。我尝试对该变量使用 od -c 进行进一步调试:

echo ${depsAlastmodified[$i]} | od -c

输出是:

+ echo '1408039118'
+ od -c
0000000 1 4 0 8 0 3 9 1 1 8 033 [ m 033 [ K
0000020 \n
0000021

但现在我不确定如何阅读它。我知道换行符属于 echo 命令。但是 033 [ m 033 [ K 到底是什么?这属于我的问题吗?

我还尝试通过 bc 运行该数字:

echo ${depsAlastmodified[$i]} | bc | od -c

这是输出:

+ echo '1408039118'
+ bc
+ od -c
(standard_in) 1: illegal character: ^[
(standard_in) 1: syntax error
(standard_in) 1: illegal character: ^[
(standard_in) 1: illegal character: K
0000000

那个变量有问题。我还能尝试什么?如何解决这个问题?

仅供引用,这是full issue history .

最佳答案

看起来你的数组中有尾随字符。

尝试使用 tr -cd '[[:digit:]]' 将删除输入中的所有非数字:

echo "${depsAlastmodified[$i]}" | tr -cd '[[:digit:]]' | od -c

它应该给出:

0000000   1   4   0   8   0   3   9   1   1   8
0000012

关于bash - 不可能的 bash : syntax error: invalid arithmetic operator (error token is ""),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com