bash 文件扩展名测试条件的紧凑形式

bash 文件扩展名测试条件的紧凑形式

我正在测试参数是否不是视频文件(.mp4.mkv)。我可以清理这个以便使其测试更加紧凑吗?

if [[ ! "$1" == *.mp4 || ! "$1" == *.mkv ]]; then

答案1

用一个语句更简单且更可移植(不依赖于 Bash 特定语法):

#!/bin/sh
case $1 in
    *.mp4|*.mkv) ;;
    *) echo "not a video file" ;;
esac

相关内容