Você raramente, ou nunca, precisa analisar a saída de ls .
Nesse caso, você pode conseguir apenas
if [ -f "$HOME/$acl/sw-list-cisco" ]; then
Estou usando o teste -f para testar se o nome fornecido existe e é o nome de um arquivo comum. Estou usando $HOME em vez de ~ desde ~ não se comporta como uma variável dentro de aspas (e $HOME é muito mais descritivo, IMHO).