如何在简单的2行bash脚本中使用退出代码作为条件

时间:2017-07-13 21:39:45

标签: bash

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

1 个答案:

答案 0 :(得分:1)

这确实是问题所在:

$(curl "$url" --max-time 10) == 0

==运算符必须位于[[ ... ]][ ... ]方括号内。

但是,由于您正在执行curl或命令替换,因此您不会比较curl的退出状态,而是$(...)的输出。

你应该只使用:

until curl "$url" --max-time 10; do ...; done