Parece que falta alguns traços duplos, provavelmente o resultado de copiar e colar:
STATUS_CODE='curl --output /dev/null --silent --head --write-out ‘%{http_code}\n’ $next'
Supondo que você chama isso com next
sendo um URL (por exemplo, em um loop ou lendo de um arquivo):
-
--output /dev/null
descarta a saída normal -
--silent
suprime o medidor de progresso -
--head
somente cabeçalho de pesquisa -
--write-out '%{http_code}\n'
imprime o código de status
Então, no final, o status da solicitação de URL acaba em STATUS_CODE
(E se você quiser definir o tempo limite, use também traços duplos: --max-time
).