как сопоставить файл журнала с синтаксисом даты

В вашем сценарии есть две основные проблемы:

  1. Утверждение caseне закрывается выражением esac.
  2. Третий шаблон содержит ||, что является синтаксической ошибкой в ​​​​большинстве Bourne -, подобных оболочкам (, использующих ''или ""или расширение, которое преобразуется в пустое значение для переносимого сопоставления с пустой строкой.)

Непонятно, что на самом деле делает ваш скрипт, поэтому я немного порассуждал и написал это:

#!/bin/sh

input="$1"

case "$input" in
      D|P|Q|L1|L2)
          val='Hello' ;;
      DD|DE|DF|CA)
          val='Hi' ;;
      MM|KL|""|TK|SZ)
          val='Bye' ;;
      *)
          echo 'error' >&2
          exit 1
esac

printf 'input was "%s", val is "%s"\n' "$input" "$val"

Проверка:

$./script.sh D
input was "D", val is "Hello"

$./script.sh MM
input was "MM", val is "Bye"

$./script.sh BOO
error
0
02.08.2020, 17:48
1 ответ

Строки, которые вы ищете, начинаются с 20/08/02, а не с 2020/08/02. Попробуйте %yвместо %Y, это даст последние две цифры года .

2
18.03.2021, 23:15

Теги

Похожие вопросы