Como criar um checkbox em shell script? [RESOLVIDO]

1. Como criar um checkbox em shell script? [RESOLVIDO]

Ghoost User
ghoostuser

(usa Arch Linux)

Enviado em 25/02/2016 - 18:20h

Pessoal, precisar criar uma checkbox em shell script mas sem utilizar zenity, dialog ou algo relacionado a isso.
Preciso criar no puro shell mesmo. Tipo assim:


1) [ ] Opção 1
2) [ ] Opção 2
3) [ ] Opção 3
4) [ ] Opção 4


Pra ter uma uma ideia melhor consegui observar isso no script do AUI, que é um script de instalação para o Arch Linux.
Esse script contem o que eu quero, que é um checkbox conforme for escolhendo as opção. Link
https://github.com/helmuthdu/aui
Porem é um pouco complexo :/

Gostaria de saber se alguem pode me ajudar com algo parecido. abraços




  


2. Re: Como criar um checkbox em shell script? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/02/2016 - 19:50h

Da forma mais simples possível:

#!/bin/sh

cat << END
1) Opção 1
2) Opção 2
3) Opção 3
4) Opção 4

Escolha suas opções (use espaço para escolher mais de uma):
END

read opt
for esc in $opt;
do
echo "Opção selecionada: $esc"
done

--
LinuxCounter: #596371


3. Re: Como criar um checkbox em shell script? [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 25/02/2016 - 20:52h

gabrielscorpion escreveu:

Pessoal, precisar criar uma checkbox em shell script mas sem utilizar zenity, dialog ou algo relacionado a isso.
Preciso criar no puro shell mesmo. Tipo assim:


1) [ ] Opção 1
2) [ ] Opção 2
3) [ ] Opção 3
4) [ ] Opção 4


Pra ter uma uma ideia melhor consegui observar isso no script do AUI, que é um script de instalação para o Arch Linux.
Esse script contem o que eu quero, que é um checkbox conforme for escolhendo as opção. Link
https://github.com/helmuthdu/aui
Porem é um pouco complexo :/
Gostaria de saber se alguem pode me ajudar com algo parecido. abraços

---------------------------------------------

Boa noite gabrielscorpion.
Adaptei o MENU que utilizo em meus scripts, para a sua necessidade,

Detalhe:
Centraliza no terminal, para isso, exige tamanho mínimo de 30 LINHAS X 60 COLUNAS.
Na realidade, a largura mínima é de 52 colunas, deixei 04 de cada lado ....(mínimo)
Para alterar a cor do menu, troque a VAR "ICOR="\e[0;38;5;226m""
Para SAIR, Opção_04, X ou x.

Imagem do MENU:
https://drive.google.com/open?id=0BzpPodhyQaNXRGstQkxUelpFTHM

Código MENU:


#!/bin/bash

# **********************************
# MENU BáSICO
# Marcelo Oliver - Fevereiro 2016
# **********************************

ICOR="\e[0;38;5;226m"
FCOR="e[m"
CE="\e[0;31m"
CF="\e[m"

MENU() {
CLEAR
printf "${ICOR}\e[2;${POS3}f %*s\n" "45" '' | sed "s/ /•/g"
printf "\e[3;${POS2}f••••••••••••••••••••• MENU •••••••••••••••••••••"
printf "\e[4;${POS1}f %*s\n" "49" '' | sed "s/ /•/g"
printf "\e[5;${POS}f•••\e[5;${POS4}f•••"
printf "\e[6;${POS}f•••\e[m [1] Opção_01 ${ICOR}•••"
printf "\e[7;${POS}f•••\e[7;${POS4}f•••"
printf "\e[8;${POS}f•••\e[m [2] Opção_02 ${ICOR}•••"
printf "\e[9;${POS}f•••\e[9;${POS4}f•••"
printf "\e[10;${POS}f•••\e[m [3] Opção_03 ${ICOR}•••"
printf "\e[11;${POS}f•••\e[11;${POS4}f•••"
printf "\e[12;${POS}f•••\e[m [4] Opção_04 ${ICOR}•••"
printf "\e[13;${POS}f•••\e[13;${POS4}f•••"
printf "\e[14;${POS1}f %*s" "49" '' | sed "s/ /•/g"
printf "\e[15;${POS2}f %*s" "47" '' | sed "s/ /•/g"
printf "\e[16;${POS3}f %*s\n\n" "45" '' | sed "s/ /•/g"
printf "\e[m"
read -p " OPÇÃO: " -n1 OPC
echo -e "\n"
case "$OPC" in
1) Opção_01 ;;
2) Opção_02 ;;
3) Opção_03 ;;
X|x|4) exit;;
*) MENSA01 ; PCM ;;
esac
}

ROWSCOLS() {
COLS=$(tput cols)
ROWS=$(tput lines)
POS=$(((COLS-50)/2))
POS1=$((POS+1))
POS2=$((POS+2))
POS3=$((POS+3))
POS4=$((POS2+47))
CHECACOLS
}

CHECACOLS() {
(($COLS < 60 || $ROWS < 30)) && printf "\n DIMENSãO:\n $ROWS:LINHAS X $COLS:COLUNAS\n MINIMO:\n 30 LINHAS X 60 COLUNAS\n" || MENU
}

#A PARTIR DESTE PONTO, CRIE AS FUNÇÕES PARA AS OPÇÕES...
#EXEMPLO

Opção_01() {
echo -e "$(date)\n $USER\n $PWD"
MENU
}

CLEAR() { printf '\033\143' ; }

MENSA00() { echo -e " "$CE"\nPREENCHIMENTO OBRIGATÓRIO!"$CF"" ; sleep 1 ; ReadUser ; }

PCM() { PROMPT ; CLEAR ; MENU ; }

PROMPT() { printf "\e[1;33m\n << PRESS ANY KEY TO CONTINUE >> \e[m" ; read -s -n1 PRMPT ; local PRMPT ; }

ROWSCOLS



PS.: Se resolver, marque como resolvido, gostando da solução, marque como melhor resposta . . . :)

Att.:
Marcelo Oliver





4. Re: Como criar um checkbox em shell script?

Ghoost User
ghoostuser

(usa Arch Linux)

Enviado em 25/02/2016 - 21:41h

Mas esses tipos de menu não tem um checkbox pra marcar. São apenas opções. Quero que tenha um checkbox na opção, quando a pessoa escolher a opção e depois que o processo terminar o checkbox fica ticado.
Igual ao script AUI no arquivo "fifo", que mostrei pra vocês, viram? Se executarem vão ter noção do que estou querendo


5. Re: Como criar um checkbox em shell script? [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 25/02/2016 - 23:50h

gabrielscorpion escreveu:

Mas esses tipos de menu não tem um checkbox pra marcar. São apenas opções. Quero que tenha um checkbox na opção, quando a pessoa escolher a opção e depois que o processo terminar o checkbox fica ticado.
Igual ao script AUI no arquivo "fifo", que mostrei pra vocês, viram? Se executarem vão ter noção do que estou querendo

________________________________________________________
Vi sim o MENU, mas não gosto de COPIAR, e sim CRIAR!!!!
É só pegar de lá, adequar as suas necessidades e pronto!!!!!
Não entendi qual seu problema???
Já tem o código pronto....
Quer que alguém faça para você?

Marcelo




6. Re: Como criar um checkbox em shell script? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/02/2016 - 07:43h

gabrielscorpion escreveu:

Mas esses tipos de menu não tem um checkbox pra marcar. São apenas opções. Quero que tenha um checkbox na opção, quando a pessoa escolher a opção e depois que o processo terminar o checkbox fica ticado.
Igual ao script AUI no arquivo "fifo", que mostrei pra vocês, viram? Se executarem vão ter noção do que estou querendo


Duas opções: pegue o script AUI e estude-o. Assim você vai poder separar o joio do trigo, ou seja, extrair apenas as funções necessárias para gerar o checkbox que você quer.

Ou...

Vai ter que estudar o tput.

man tput


--
LinuxCounter: #596371


7. Como criar um checkbox em shell script?

andre
andregyn

(usa Debian)

Enviado em 26/02/2016 - 18:55h

Boa noite amigo,

A forma mais simples de fazer e com whiptail, onde será possível ate clicar com o mouse.
Segue:

whiptail --checklist "Por favor escolha um:" 10 60 5 1 Primeiro off 2 Segundo off 3 Terceiro off 4 Quarto off 5 Quinto off

A saída sera de acordo com selecionado, sera o primeiro valor, no caso se selecionar todos a saída será "1" "2" "3" "4" "5"

Somente este comando, bom né. Rs...

Abraços.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts