Radiolist do dialog não reconhece uma opção. [RESOLVIDO]

1. Radiolist do dialog não reconhece uma opção. [RESOLVIDO]

Júlia Nunes Pedrosa
itsssxuria

(usa Ubuntu)

Enviado em 24/06/2016 - 15:22h

Oi pessoal! Essa é a minha primeira vez perguntando aqui no VOL. Fiz um script configurando o servidor e o cliente NFS para um trabalho da faculdade. Até aí, tudo ok. Eu havia feito-o com echo, apenas inicialmente, visto que um dos pré-requisitos do trabalho é a utilização do dialog. Funcionou supimpa com o echo (segue abaixo), mas na hora de colocar o dialog, percebi que o radiolist não está reconhecendo as minhas opções e não sei o motivo, visto que sempre utilizei o radiolist desta maneira.

Ps. Já apliquei a permissão de execução no script.

Script NFS com echo:

#!/bin/bash
teste
echo -e "Deseja configurar o que? \n ( 1 ) Diretorio existente;\n ( 2 ) Novo diretorio;"
echo -n "Resposta: "
read PATHOPT

case "$PATHOPT" in

1) echo -e "Qual o caminho completo do diretorio que deseja copartilhar? "
echo -n "Resposta: "
read SVRDIR ;;

2)
echo -e "Qual diretorio deseja criar para compartilhar? (Ele sera criado dentro em /NFS_Shared) "
echo -n "Resposta: "
read SVRDIR1
cd /NFS_Shared
mkdir $SVRDIR1
SVRDIR=/NFS_Shared/$SVRDIR1
echo $SVRDIR;;

*) echo "Opcao invalida" ;;

esac

echo -e "Qual o IP do seu cliente? "
echo -n "Resposta: "
read IP

echo -e "Qual permissoes voce deseja que o seu cliente tenha neste diretorio? \n ( 1 ) Somente leitura; \n ( 2 ) Leitura e escrita;"
echo -n "Resposta: "
read PERM

case "$PERM" in
1) echo -e "\n/$SVRDIR $IP (ro,no_root_squash,sync)" > /etc/exports ;;
2) echo -e "\n/$SVRDIR $IP (rw,no_root_squash,sync)" > /etc/exports ;;
*) echo "Opcao invalida...";
esac

echo -e "\n rpcbind: ALL \n nfs: ALL" > /etc/hosts.deny
echo -e "\n rpcbind: $IP$MASK \n nfs: $IP$MASK" > /etc/hosts.allow

service nfs-kernel-server restart
service rpcbind restart
echo "O serviço NFS foi reiniciado."

exportfs
echo "O compartilhamento foi inicilizado..."

echo -e "Deseja realizar as configuracoes em seu cliente? (S/N)"
echo -n "Resposta: "
read OPT

echo -e "Deseja compartilhar a pasta na /home de qual usuario?"
echo -n "Resposta: "
read USR

SVRIP="$(ifconfig $interface | grep "end.:" | cut -f2 -d':' | sed 's/Bcast/ /g' | sed 's/ //g' | sed -n '2p')"

case "$OPT" in
S) ssh root@$IP "cd /home/$USR ; mkdir NFS_Files ; mount -t nfs $SVRIP:$SVRDIR /home/$USR/NFS_Files/; exit "
echo "Pronto! O diretorio foi montado no caminho /root/Client_NFS do cliente informado." ;;
N) echo "Ok.";;
*) "Opcao invalida." ;;
esac



Script com dialog:

#!/bin/bash

PATHOPT=$(dialog --radiolist "Deseja configurar o que?" 15 40 5 \
"Diretorio existente;" "" ON \
"Novo diretorio;" "" OFF
"Sair." "" OFF --stdout)

case $PATHOPT in

"Diretorio existente;") dialog --title "[ * ] COMPARTILHAMENTO NFS" --inputbox "Qual o caminho completo do diretorio que deseja copartilhar?" 10 40 2> /tmp/inputbox.tmp.$$
SVRDIR=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/imputbox.tmp.$$ ;;

"Novo diretorio;") dialog --title "[ * ] COMPARTILHAMENTO NFS" --inputbox "Qual diretorio deseja criar para compartilhar? (Ele sera criado dentro em /NFS_Shared) " 10 40 2> /tmp/inputbox.tmp.$$
SVRDIR1=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/imputbox.tmp.$$
cd /NFS_Shared
mkdir $SVRDIR1
SVRDIR=/NFS_Shared/$SVRDIR1
echo $SVRDIR;;

"Sair.") clear ; exit ;;
esac

dialog --title "[ * ] COMPARTILHAMENTO NFS" --inputbox "Qual o IP do seu cliente?" 10 40 2 > /tmp/inputbox.tmp.$$
IP=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/imputbox.tmp.$$

PERM=$(dialog --radiolist "Qual permissoes voce deseja que o seu cliente tenha neste diretorio?" 15 40 3 \
"Somente leitura;" "" ON \
"Leitura e escrita;" "" OFF
"Sair." "" OFF --stdout)

case "$PERM" in

"Somente leitura;") echo -e "\n/$SVRDIR $IP (ro,no_root_squash,sync)" > /etc/exports ;;
"Leitura e escrita;") echo -e "\n/$SVRDIR $IP (rw,no_root_squash,sync)" > /etc/exports ;;
"Sair.") clear ; exit ;;
esac

echo -e "\n rpcbind: ALL \n nfs: ALL" > /etc/hosts.deny
echo -e "\n rpcbind: $IP$MASK \n nfs: $IP$MASK" > /etc/hosts.allow

service nfs-kernel-server restart
service rpcbind restart

dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "O servico NFS foi reiniciado." 15 40
sleep 2

exportfs

dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "O compartilhamento foi inicilizado..." 15 40
sleep 2

OPT=$(dialog --radiolist "Deseja realizar as configuracoes em seu cliente?" 15 40 5 \
"Sim" "" ON \
"Nao" "" OFF --stdout)

SVRIP="$(ifconfig $interface | grep "end.:" | cut -f2 -d':' | sed 's/Bcast/ /g' | sed 's/ //g' | sed -n '2p')"

case "$OPT" in

"Sim") dialog --title "[ * ] COMPARTILHAMENTO NFS" --inputbox "Deseja compartilhar a pasta na /home de qual usuario?" 10 40 2> /tmp/inputbox.tmp.$$
USR=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/imputbox.tmp.$$
ssh root@$IP "cd /home/$USR ; mkdir NFS_Files ; mount -t nfs $SVRIP:$SVRDIR /home/$USR/NFS_Files/; exit "
dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "Pronto! O diretorio foi montado no caminho /root/Client_NFS do cliente informado." 15 40
sleep 2 ;;

"Nao") echo -e "\n/$SVRDIR $IP (rw,no_root_squash,sync)" > /etc/exports ;;
esac



Distribuição: Debian 8.5

root@debian:~/Scripts# ./nfs_dialog.sh
Diretorio existente;./nfs_dialog.sh: line 7: Sair.: comando não encontrado


Preciso entregar este trabalho amanhã e já cansei de bater cabeça sozinha com este problema. Me ajudem, por favor! ):



  


2. MELHOR RESPOSTA

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 24/06/2016 - 15:28h

faltou um \

Como esta


PATHOPT=$(dialog --radiolist "Deseja configurar o que?" 15 40 5 \
"Diretorio existente;" "" ON \
"Novo diretorio;" "" OFF
"Sair." "" OFF --stdout)


Como tem que estar


PATHOPT=$(dialog --radiolist "Deseja configurar o que?" 15 40 5 \
"Diretorio existente;" "" ON \
"Novo diretorio;" "" OFF \
"Sair." "" OFF --stdout)



3. Re: Radiolist do dialog não reconhece uma opção. [RESOLVIDO]

Júlia Nunes Pedrosa
itsssxuria

(usa Ubuntu)

Enviado em 24/06/2016 - 15:30h

AAAAAAAAAAH!!!! Muito obrigada!
Acho que eu já estava tão estressada pelo fato dele não funcionar, que não reparei! Muito obrigada mesmo, rodou lisinho!


4. Re: Radiolist do dialog não reconhece uma opção. [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 24/06/2016 - 15:54h

hehehe , acontece


5. Re: Radiolist do dialog não reconhece uma opção. [RESOLVIDO]

Júlia Nunes Pedrosa
itsssxuria

(usa Ubuntu)

Enviado em 24/06/2016 - 16:02h

Corrigi esse erro e fiz mais umas melhorias, agora deu outro erro. ):

Ele roda até a parte em negrito no código, e dá o seguinte erro:

./nfs_dialog.sh: line 82: erro de sintaxe proximo do `token' nao esperado `)'
./nfs_dialog.sh: line 82: ` "Nao") dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "O diretorio ja foi compartilhado, basta monta-lo em seu cliente!" 15 40'


#!/bin/bash

PATHOPT=$(dialog --radiolist "Deseja configurar o que?" 15 40 5 \
"Diretorio existente;" "" ON \
"Novo diretorio;" "" OFF \
"Sair." "" OFF --stdout)

case $PATHOPT in

"Diretorio existente;") dialog --title "[ * ] COMPARTILHAMENTO NFS" --inputbox "Qual o caminho completo do diretorio que deseja copartilhar?" 10 40 2> /tmp/inputbox.tmp.$$
SVRDIR=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$ ;;

"Novo diretorio;") dialog --title "[ * ] COMPARTILHAMENTO NFS" --inputbox "Qual diretorio deseja criar para compartilhar? (Ele sera criado dentro em /NFS_Shared) " 10 40 2> /tmp/inputbox.tmp.$$
SVRDIR1=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
cd /NFS_Shared
mkdir $SVRDIR1
SVRDIR=/NFS_Shared/$SVRDIR1 ;;

"Sair.") clear ; exit ;;
esac

dialog --title "[ * ] COMPARTILHAMENTO NFS" --inputbox "Qual o IP do seu cliente?" 10 40 2 > /tmp/inputbox.tmp.$$
IP=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$

PERM=$(dialog --radiolist "Qual permissoes voce deseja que o seu cliente tenha neste diretorio?" 15 40 3 \
"Somente leitura;" "" ON \
"Leitura e escrita;" "" OFF \
"Sair." "" OFF --stdout)

case "$PERM" in

"Somente leitura;") echo -e "\n/$SVRDIR $IP (ro,no_root_squash,sync)" > /etc/exports ;;
"Leitura e escrita;") echo -e "\n/$SVRDIR $IP (rw,no_root_squash,sync)" > /etc/exports ;;
"Sair.") clear ; exit ;;
esac

echo -e "\n rpcbind: ALL \n nfs: ALL" > /etc/hosts.deny
echo -e "\n rpcbind: $IP$MASK \n nfs: $IP$MASK" > /etc/hosts.allow

service nfs-kernel-server restart
service rpcbind restart

dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "O servico NFS foi reiniciado." 15 40
sleep 2

exportfs

dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "O compartilhamento foi inicilizado..." 15 40
sleep 2

OPT=$(dialog --radiolist "Deseja realizar as configuracoes em seu cliente?" 15 40 5 \
"Sim" "" ON \
"Nao" "" OFF --stdout)

SVRIP="$(ifconfig $interface | grep "end.:" | cut -f2 -d':' | sed 's/Bcast/ /g' | sed 's/ //g' | sed -n '2p')"

case "$OPT" in

"Sim") ROOT=$(dialog --radiolist "Deseja compartilhar o diretorio com o usuario root da maquina cliente?" 15 40 5 \
"Sim" "" ON \
"Nao" "" OFF --stdout)


case "ROOT" in

"Sim") ssh root@$IP "cd /root ; mkdir NFS_Files ; mount -t nfs $SVRIP:$SVRDIR /root/NFS_Files/; exit "
dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "Pronto! O diretorio foi montado no caminho /root/NFS_Files do cliente: \n\n $IP" 15 40
sleep 2
./menu.sh;;

"Nao") dialog --title "[ * ] COMPARTILHAMENTO NFS" --inputbox "Deseja compartilhar a pasta na /home de qual usuario?" 10 40 2> /tmp/inputbox.tmp.$$
USR=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
ssh root@$IP "cd /home/$USR ; mkdir NFS_Files ; mount -t nfs $SVRIP:$SVRDIR /home/$USR/NFS_Files/; exit "
dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "Pronto! O diretorio foi montado no caminho /root/Client_NFS do cliente informado." 15 40
sleep 2
./menu.sh ;;
esac

"Nao") dialog --title "[ * ] COMPARTILHAMENTO NFS" --msgbox "O diretorio ja foi compartilhado, basta monta-lo em seu cliente!" 15 40
sleep 2
./menu.sh ;;
esac




  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts