O script precisa ser executado dentro da pasta que contém as imagens. Se, por qualquer meio, não houver nenhum arquivo .png dentro da pasta atual, o loop atribuirá *.png à variável i . Como resultado, sips informa que não é um arquivo válido, o que está correto.