gohan123 Posted February 13, 2023 at 03:07 PM Report Share #630142 Posted February 13, 2023 at 03:07 PM 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!!!! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now