Я обнаружил, что эта команда дает мне тип MIME из файла:
file --mime-type dog.jpeg
Вывод:
dog.jpeg: image/jpeg
Теперь я пытаюсь создать Bash Crelects, если MIME является JPEG OG PNG. Однако я немного застрял:
#!/bin/bash
$file_mime="file --mime-type dog.jpeg"
mime=`"${file_mime#*:}"`
if(mime=='image/jpg' OR mime=='image/png') do:
echo"Jpg or png"
done
Выход:
./bash.sh: line 2: =file --mime-type dog.jpeg: command not found
./bash.sh: line 3: : command not found
Ваша первая ошибка заключается в том, что у вас есть префикс $
на вашем назначении. Ваша вторая ошибка заключается в том, что вы пытаетесь объединить выполнение команды с обработкой результатов (отчитывая имя файла из результата). Как всегда с сценарием Bash, есть много способов достижения того же, поэтому это всего лишь один, попробуйте:
#!/bin/bash
mime=$(file -b --mime-type dog.jpeg)
if [[ $mime = image/@(jpeg|png) ]]; then
echo "File is a jpeg or png."
fi
затем оценивать $ MIME
, но я предлагаю вам поиск и читать на некоторых учебниках сценариев Bash Если утверждения
и т. Д. В качестве вашего , если выписка
не является действительным скриптом Bash.
Декларация переменных в Bash без знак доллара $
:
var="foo"
echo "$var"
foo
Теперь вы хотите выполнить замену команды, файл
переменную, являющийся результатом команды - Mime-Type Dog.jpeg
. Способ сделать это:
# now the output of the command is stored in the variable
file_mime=$(file --mime-type dog.jpeg)
Теперь вы можете эхо переменную:
echo "$file_mime"
dog.jpeg image/jpeg
и получить тип MIME:
mime=$(echo "$file_mime" | awk '{ print $2 }')
echo "$mime"
image/jpeg