I'm trying to write a oneliner bash test containing "||"s and "&&"s, here is what it looks like :
$ [ [ $extension = mp4 ] || [ $extension = m4a ] || [ $extension = mp3 ] ] && echo OK || echo KO
bash: [: too many arguments
bash: [: too many arguments
KO
$ set -x
$ [ [ $extension = mp4 ] || [ $extension = m4a ] || [ $extension = mp3 ] ] && echo OK || echo KO
+ '[' '[' mp4 = mp4 ']'
bash: [: too many arguments
+ '[' mp4 = m4a ']'
+ '[' mp4 = mp3 ']' ']'
bash: [: too many arguments
+ echo KO
KO
EDIT : This seems to work :
$ [ $extension = mp4 ] || [ $extension = m4a ] || [ $extension = mp3 ] && echo OK || echo KO
OK