Операторы -eq
и -ne
являются арифметическими операторами для сравнения числовых данных.
Здесь вам нужны ==
и!=
:
if [[ "${fin[2]}" == 'OK' ]] &&
[[ "${fin[7]}" == 'NA' ]]; then
и
elif [[ "${fin[2]}" != 'OK' ]] &&
[[ "${fin[7]}" == 'NA' ]] &&
(( currDate2 < expectedFinishTimes )); then
(например ).
Также будьте осторожны с цитированием иecho
:
echo "<tr id="green">"
лучше писать как
echo '<tr id="green">'
Первый произведет
<tr id=green>
а второй произведет
<tr id="green">
c=$( printf '%s - %s\n' "$a" "$b" | bc )
o, para los perezosos,
c=$( echo "$a - $b" | bc )
o, para el usuario perezoso bash
,
c=$( bc <<<"$a - $b" )
El problema con tu código es que
c=$((a-b)) | bc
no funcionará. Solo puede (útilmente )canalizar cosas que producen salida, y c=$((a-b))
es una asignación que 1 )fallará si $a
o $b
son números de punto flotante (con un error de sintaxis )y 2 )no produce salida. Además, la salida debc
(nada )no se asignará a c
ya que no forma parte de la asignación en absoluto.