我刚刚在我的 VPS 上重新安装了新的操作系统,即 Debian 11。
现在,每当自动 cron.hourly 运行时,我都会收到以下错误
/sbin/run-parts: line 5: 127011 127011: syntax error in expression (error token is "127011")
当我检查文件时/sbin/run-parts
。
我看到下面的代码:
#!/bin/bash
parameters="$@"
ip=$(hostname -i)
**RANDOM=${ip//./}**
test -z "${parameters##*/etc/cron.*}" &&
sleep $((RANDOM % 3600))
exec /bin/run-parts "$@"
第 5 行,**RANDOM=${ip//./}**
是问题所在,第 5 行可能存在什么问题?
答案1
这个脚本有点可疑... (正如所提到的,变量RANDOM
不能被星号字符包围,我猜你把它放在这里是为了突出显示错误,但无论如何这其中存在扭曲的逻辑)
- 首先,vanilla Debian 11
run-parts
在目录内有程序/usr/bin
(或其内的符号链接/bin
)。它不是/sbin/run-parts
Debian 11。 - 第二个
run-parts
是可执行 ELF 文件,而不是 bash 脚本 - 最后,这个脚本真的很奇怪,我怀疑它是不是 Debian 官方的脚本
PS 如果这是您的脚本,请不要使用保留变量名,例如RANDOM
,至少将其重命名为iRANDOM
,但请记住,POSIX 表示所有大写变量都应该仅用于环境。