![bash 文件扩展名测试条件的紧凑形式](https://linux22.com/image/216242/bash%20%E6%96%87%E4%BB%B6%E6%89%A9%E5%B1%95%E5%90%8D%E6%B5%8B%E8%AF%95%E6%9D%A1%E4%BB%B6%E7%9A%84%E7%B4%A7%E5%87%91%E5%BD%A2%E5%BC%8F.png)
我正在测试参数是否不是视频文件(.mp4
,.mkv
)。我可以清理这个以便使其测试更加紧凑吗?
if [[ ! "$1" == *.mp4 || ! "$1" == *.mkv ]]; then
答案1
用一个案件语句更简单且更可移植(不依赖于 Bash 特定语法):
#!/bin/sh
case $1 in
*.mp4|*.mkv) ;;
*) echo "not a video file" ;;
esac
我正在测试参数是否不是视频文件(.mp4
,.mkv
)。我可以清理这个以便使其测试更加紧凑吗?
if [[ ! "$1" == *.mp4 || ! "$1" == *.mkv ]]; then
用一个案件语句更简单且更可移植(不依赖于 Bash 特定语法):
#!/bin/sh
case $1 in
*.mp4|*.mkv) ;;
*) echo "not a video file" ;;
esac