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.