#! / bin / bash показывает, когда файла нет. #! / bin / bash Ожидаемый бинарный оператор - PullRequest
0 голосов
/ 25 февраля 2020

В нашей программе мы даем оболочке дождаться некоторых определенных файлов c и, если найдем, выполнить следующую bash. Код работал идеально несколько дней go, но в последнее время он показывает странную ошибку.

Во-первых, давайте посмотрим код:

#!/bin/bash -xv
...
...

field 1 << END |
${interface_redpost_rcv}/__TEMP__/${redpost_id}/xyz.csv.*.IF //files that match this format
${interface_redpost_rcv}/__TEMP__/${redpost_id}/abc.csv.*.IF //and this
...
...

END
while read fn ; do
  while : ; do
    [ -e ${fn} ] && break

    sleep 10

    # リミット
    [ $(date +%H%M) -lt ${limit} ] || exit 1
  done
done

, если есть какой-либо файл, который соответствует этому формату с самого начала, l oop ломается, и он работает отлично, но проблема начинается, когда во время выполнения файла нет.

Он постоянно проходит весь день без пропуска, даже если сейчас есть файлы.

LOG:

+ field 1
+ read fn
+ :
+ '[' -e '#!/bin/bash' -xv ']'
/home/batch/bash/EXAMPLE.BASH: 50 line: [: Expected binary operator
+ sleep 10
++ date +%H%M
+ '[' 2120 -lt 2359 ']'
....
....
....

И в журнале где находится '[' -e '#!/bin/bash' -xv ']', это #!/bin/bash взято?

BASH версия:

GNU bash, version 4.2.46 (2) -release (x86_64-redhat-linux-gnu)

Было бы очень полезно, если бы кто-то мог указать, где проблема и если есть какое-либо другое лучшее решение для реализации, ждите файлов на bash.

...