Я читаю примеры bash, if
только некоторые примеры написаны с помощью одиночных квадратных скобок:
if [ -f $param ]
then
#...
fi
другие с двойными квадратными скобками:
if [[ $? -ne 0 ]]
then
start looking for errors in yourlog
fi
В чем разница?