Что не так с этим условным выражением в bash? - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь проверить:

, является ли $ file бинарным, а $ file не является графическим файлом, что-то сделать.

if [[ "$(file --dereference --mime "$FILE")" =~ binary ]] && [[ "$FILE" != \.jpg$|\.jpeg$|\.png$ ]]; then
  echo "$1 is a binary file"
  exit 0
fi

Ошибка syntax error in conditional expression: unexpected token

Наверное, я пропускаю что-то простое.Я немного погуглил, но не могу получить рабочее заявление.Любые советы приветствуются.

1 Ответ

1 голос
/ 16 июня 2019

Вы, похоже, пытаетесь провести матч-отрицание на втором [[.Вы можете сделать это, поставив ! перед матчем =~

Вот пример, который может вам помочь:

[[ ! 'foo.png' =~ \.(jpe?g|png)$ ]] && echo not a image
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...