Ir ao conteúdo
  • Cadastre-se

Gohan nascimento junior

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por Gohan nascimento junior

  1. Bom dia a todos, sou programador junior e estou com um problema com a execução de itens com o dialog e não estou conseguindo resolver. Se alguém puder dar uma mão, agradeço.. O problema é o seguinte : O código abaixo que criei, gera um menu dinâmico a partir de um txt populado de outro script.. a geração do menu dinâmico funciona e esta ok, cada linha do menu tem 3 partes : um ID (deveria ser numérico), um texto (que deveria aparecer na linha do menu para ou usuário escolher) e um status (que não precisaria aparecer para o usuário, mas tudo bem).. O menu gera sem problemas, o problema é que eu gostaria de para cada seleção que o usuário escolhe-se, executasse o código correspondente do ID da linha e logo após, eliminasse a linha correspondente do menu. Caso eu reexecutasse de novo o código, o novo menu criado não deveria mais trazer a linha que foi executada exitosamente, mas não estou conseguindo fazer isso .. Código abaixo :

     #!/bin/bash
     # Define o nome do arquivo de relatório
    report_file="scripts/hmenu/result.txt"
    # Lê o arquivo result.txt no subdiretório scripts/ hmenu /
    while read line; do
      # Extrai o ID, o texto e o status da linha
      id=$(echo $line | awk '{print $1}')
      text=$(echo $line | awk '{print $2 " " $3 " " $4 " " $5 " " $6 " " $7 " " $8 " " $9}')
      status=$(echo $line | awk '{print $10}')
      # Adiciona o item de checkbox ao menu
      options+=("$id" "$text" "$status")
    done < $report_file

    # Exibe o menu em forma de checkbox
    selected=$(dialog --backtitle "Selecione os itens desejados:" \                   
    --checklist " " 20 60 15 \                   
    "${options[@]}" \                  
     --output-fd 1 \                   
    --separate-output \                   
    --scrollbar \                  
     3>&1 1>&2 2>&3)
     
    # Executa cada item selecionado
    for item in $selected; do
      if [ "$item" == "1" ]; then
        echo "Executando o código para o Item 1..."
        sed -i "/ $item/d" $report_file
     
    fi
      if [ "$item" == "2" ]; then
        echo "Executando o código para o Item 2..."
        sed -i "/ $item/d" $report_file
      fi

    done

    Agradeço antecipadamente a ajuda!!!!

    • Amei 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!