Repetição / repetição de um script de shell com base na entrada do usuário

0

Eu escrevi um script simples que converte o peso do usuário na Terra para pesar na lua. No entanto, no final do programa, estou tentando perguntar ao usuário se ele deseja repetir o processo e ler sua resposta.

Se o usuário responder afirmativamente, o script deve repetir, caso contrário, o script deve sair.

Isso é o que eu tenho até agora, mas não consigo descobrir como fazer com que o script seja repetido se o usuário decidir não sair.

echo -n "Enter starting weight: "
read star

echo -n "Enter ending weight: "
read end

echo -n "Enter weight increment: "
read increment

while [ $star -le $end ]
do
  moonweight='echo $star \* .166 | bc'
  echo "$star pounds on earth = $moonweight pounds on the moon"

  star='expr $star + $increment'
done

notDone=true

while [ $notDone ]
do
  echo -n "Enter a number or Q to quit: "
  read var1 junk

  var1='echo $var1 | tr 'A-Z' 'a-z''

  if [ $var1 = "q" ]
  then
    echo "Goodbye"
    exit
  else
  fi
done
    
por nly0904 01.03.2017 / 03:11

1 resposta

0

Envolvendo isso em outro loop while:

while :
do
    echo -n "Enter starting weight: "
    read star

    echo -n "Enter ending weight: "
    read end

    echo -n "Enter weight increment: "
    read increment

    while [ "$star" -le "$end" ]
    do
      moonweight='echo $star \* .166 | bc'
      echo "$star pounds on earth = $moonweight pounds on the moon"

      star='expr $star + $increment'
    done

    notDone=true

    while $notDone
    do
      echo -n "Enter a number or Q to quit: "
      read var1 junk

      var1='echo $var1 | tr 'A-Z' 'a-z''

      if [ "$var1" = "q" ]
      then
        echo "Goodbye"
        exit
      else
        notDone=false
      fi
    done
done
    
por 01.03.2017 / 03:29