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.