url="http://localhost:8080/matlib"
until $(curl "$url" --max-time 10) == 0; do stuck_pid=$(chown_pid); kill -9 $stuck_pid && "killing chmod process";done
我想做的是卷曲这个地址,如果它在 10 秒后超时,那么术语为 PID。
失败的部分是'== 0',这里的目的是将curl的返回代码与0进行比较,但我收到以下错误:
-bash: ==: command not found
这确实是问题所在:
$(curl "$url" --max-time 10) == 0
==
运算符必须位于方括号内[[ ... ]]
或方括号[ ... ]
。
但是,您不是在比较curl
的退出状态,而是在比较curl
的输出,因为您正在执行$(...)
或命令替换。
您应该只使用:
until curl "$url" --max-time 10; do ...; done