O script abaixo deve ser útil, pois ajudará você a exibir suas mensagens de erro personalizadas.
#!/bin/bash
files=$(ls *.sh 2> /dev/null)
if [ -z "$files" ]
then
echo "No script files found. Exiting.."
exit
fi
echo "Moving all script files to script directory..."
for file in $files
do
if ! mv $file $HOME/linux/scripts
then
echo "Unable to move file $file"
fi
done
Quando o script é executado, a lista de "*.sh"
arquivos no diretório de trabalho atual dos scripts é atribuída à variável files
.
Em seguida, fazemos uma verificação de integridade para ver se a variável $files
está vazia. Se estiver vazio, significa que não há arquivos "*.sh"
no diretório.
Se os arquivos existirem, o loop for
itera sobre a variável $files
e move cada arquivo. Se o comando mv
falhar e o erro for impresso.
Para mais detalhes sobre for
loop, consulte este documento.