Como aceitar entrada do usuário dentro de um loop

1

Sou realmente novo em scripts de shell e estou tentando criar um loop que continuará a solicitar a entrada de um usuário até que ele confirme se está correto. Eu estou tentando usar um loop while para isso, mas ele com erros com:

joyentmac2252:scripts jessebutryn$ ./bashprofilemod.sh
Please enter your Joyent Public Cloud (JPC) username and press [ENTER]: 
jesse.butryn
The username you entered is: jesse.butryn Is this correct? y/n :n
./bashprofilemod.sh: line 13: syntax error near unexpected token 'fi'
./bashprofilemod.sh: line 13: '  fi'

O roteiro completo está abaixo, desculpe se está realmente sujo, mas ainda estou aprendendo as coisas. Está incompleto a partir de agora porque estou tentando fazer com que os loops while funcionem antes de passar para os próximos passos.

#!/bin/sh
#Prompts user for their Joyent Cloud username (usually first.last)
read -p "Please enter your Joyent Public Cloud (JPC) username and press [ENTER]: " username
#Confirms user input
read -p "The username you entered is: $username Is this correct? y/n :" uconf
#
while [ $uconf = "N" -o $uconf = "n" ]
do
  read -p "Please enter your Joyent Public Cloud (JPC) username and press [ENTER]: " username
  read -p "The username you entered is: $username Is this correct? y/n :" uconf
  if [ $uconf = "Y" -o $uconf = "y" ]
    echo "Thanks your username will be entered as: $username$."
  fi
done

Obrigado por qualquer entrada

    
por Jesse_b 27.06.2017 / 17:40

1 resposta

2

Você não usou then para a instrução if .

if [ $uconf = "Y" -o $uconf = "y" ];then
    echo "Thanks your username will be entered as: ${txtcyn}$username${txtrst}."
 fi



 if [ $kconf = "Y" -o $kconf = "y" ];then 
     echo "Thanks your ssh public key will be entered as: ${txtcyn}$HOME/.ssh/$sshkey${txtrst}."
 fi
    
por 27.06.2017 / 17:58

Tags