почему:
#!/bin/bash
wtf=false
if [ $wtf ] || [ ! -f filethatexists.whatever ]
then
echo "WTF1"
fi
if [ ! -f filethatexists.whatever ]
then
echo "WTF2"
fi
Печать
WTF1
вместо ничего? Особенно удручает, что вторая форма работает так, как ожидалось, и первая не.