仅从文件中提取我的 --mime-type 以在 bash 脚本中的 if-else 中使用

Eur*_*opa 2 bash 20.10

我发现这个命令给了我一个文件中的 mime 类型:

file --mime-type dog.jpeg 
Run Code Online (Sandbox Code Playgroud)

输出:

dog.jpeg: image/jpeg
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试创建一个 bash 检查 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
Run Code Online (Sandbox Code Playgroud)

输出:

./bash.sh: line 2: =file --mime-type dog.jpeg: command not found
./bash.sh: line 3: : command not found
Run Code Online (Sandbox Code Playgroud)

cod*_*ord 5

您的第一个错误是因为您$的作业有前缀。您的第二个错误是因为您试图将命令的执行与结果的处理结合起来(从结果中剥离文件名)。与 bash 脚本一样,有很多方法可以实现相同的目的,所以这只是一种方法,请尝试:

#!/bin/bash

mime=$(file -b --mime-type dog.jpeg)

if [[ $mime = image/@(jpeg|png) ]]; then
    echo "File is a jpeg or png."
fi
Run Code Online (Sandbox Code Playgroud)

然后进行评估,$mime但我建议您搜索并阅读一些 bash 脚本教程以了解if语句等,因为您的if语句不是有效的 bash 脚本。