- Elabore um script simples que exiba uma mensagem de boas-vindas quando executado.
#!/bin/bash # Script que exibe uma simples mensagem de boas-vindas. echo "Seja bem-vindo ao universo Bourne Again SHell!" - Construa um script que seja capaz de criar uma cópia de segurança de um diretório específico.
#!/bin/bash # Script que faz uma cópia de segurança de um diretório. echo -n "Digite o nome do diretório a ser copiado: " read DIRETORIO if [ ! -d "$DIRETORIO" ]; then # Testa se o valor fornecido pelo usuário é um diretório válido. echo "O programa $0 requer o nome de um diretório válido para executar a cópia." exit 1 fi ls "$DIRETORIO" # Mostra o conteúdo transferido para o novo diretório. DIRETORIO_COPIA="${DIRETORIO}_$(date +%d%m%Y_%H%M%S)_copia" # Cria uma variável com o nome do diretório e acrescenta data e hora de sua criação. cp -r "$DIRETORIO" "$DIRETORIO_COPIA" # Copia o conteúdo do diretório origem fernecido pelo usuário para o novo diretório destino. echo "Cópia concluída em $DIRETORIO_COPIA." - Crie um script que solicite ao usuário o nome de um diretório e, em seguida, o crie.
#!/bin/bash # Script que possibilita a criação de um novo diretório a partir do nome fornecido pelo usuário. ls -d */ # Lista os diretórios existentes no diretório atual ajudando o usuário a evitar nomes duplicados. while true; do echo -n "Forneça um nome, não presente na lista acima, para o novo diretório: " read NOME if [[ "$NOME" == -* ]]; then # Verifica se o nome começa com hífen, o que causa problema no mkdir. Nomes com hífen no meio, como 'novo-diretório', são permitidos. echo "Nome inválido: não é permitido iniciar com hífen. Escolha um nome que comece com letra ou número." elif [[ -d "$NOME" ]]; then # Verifica se já existe um diretório com o nome informado evitando sobrescrever e gerar erro no mkdir. echo "Nome em uso. Utilize um nome diferente." elif [[ "$NOME" =~ ^[a-zA-Z0-9_-]+$ ]]; then # Verifica se o nome contém apenas caracteres permitidos: letras, números, hífen ou sublinhado. echo "Nome válido." break else echo "Nome inválido: use apenas letras, números, hífen ou sublinhado. Evite espaços e símbolos especiais." fi done # Entendendo: ^[a-zA-Z0-9_-]+$ # ^ : Garante que a verificação comece no primeiro caractere. # a-zA-Z0-9_- : Conjunto de caracteres permitidos. # + : Exige um ou mais caracteres válidos (não permite nome vazio). # $ : Garante que o nome termine com um caractere permitido, sem sobras. # =~ : Operador de correspondência de padrão. mkdir "$NOME" # Cria, após a validação na estrutura while, o novo diretório com o nome indicado pelo usuário. echo "Diretório $NOME criado com sucesso." echo "Para acessar, digite: cd \"$NOME\"" - Escreva um script que aceite um nome de arquivo como argumento e verifique se o arquivo existe.
#!/bin/bash # Script que verifica a existência de um arquivo no diretório atual. while true; do echo -n "Digite o nome do arquivo desejado: " read ARQUIVO if [[ -e "$ARQUIVO" ]]; then # Verifica se há alguma correspondência com o nome fornecido. if [[ -f "$ARQUIVO" ]]; then # Verifica a existência do arquivo indicado pelo usuário echo "O arquivo $ARQUIVO existe." break elif [[ -d "$ARQUIVO" ]]; then # Verifica se o nome fornecido é na verdade um diretório. echo "O $ARQUIVO existe, mas é um diretório." break fi else echo "O arquivo $ARQUIVO não existe." echo -n "Digite (n) para fazer uma nova pesquisa ou (e) para encerrar o script: " read OPCAO fi case "$OPCAO" in 'N'|'n') continue ;; 'E'|'e') echo "Encerrando o script..." exit 1 ;; *) echo "Opção desconhecida. Encerrando o script..." ;; exit 1 ;; esac done - Desenvolva um script que utilize um loop para contar de 1 a 5.
#!/bin/bash # Script que conta de 1 até 5. NUMERO=1 # Inicia a contagem while [[ $NUMERO -le 5 ]]; do # Conta até chegar em 5 echo -n "$NUMERO " # Mostra os valores, na mesma linha, acrescidos de um espaço em branco à direita. NUMERO=$(( NUMERO+1 )) # Incrementa a variável NUMERO. done echo # Imprime uma quebra de linha após a contagem.