Como funcionam as “opções” no script de shell?

1

Encontrei algum código em uma das respostas aqui e o adaptei às minhas necessidades, mas agora tenho duas perguntas:

Q1: como posso exibir o texto das opções depois que o código da declaração de caso terminar? Assim, o usuário pode ver as opções novamente.

Q2: Posso fazer com que todas as opções sejam exibidas em sua própria linha quando eu executar o script? Atualmente não é.

options=(
        "quit/exit"
    "new rational db"
    "run php for rational codebase"
    "run php for playground codebase"
   )

select option in "${options[@]}"; do
  case "$REPLY" in
       1) break;;
       2) sudo -i -u db2inst1 bash -c "db2stop force;";;
       3) rm /tmp/createDb2*;;
       4)  ;;               
  esac
done
    
por Radek 22.08.2012 / 03:46

1 resposta

1

Q1: adicione espaços ao final de qualquer uma das opções para torná-lo com mais de 40 caracteres, por exemplo:

options=(
        "quit/exit"
    "new rational db"
    "run php for rational codebase"
    "run php for playground codebase                       "
   )

Q2: Não tenho certeza se existe uma maneira mais elegante (não vi em help select ), mas isso deve funcionar:

finished=
while test ! "$finished"; do
    select option in "${options[@]}"; do
      case "$REPLY" in
           1) finished=1;;
           2) sudo -i -u db2inst1 bash -c "db2stop force;";;
           3) rm /tmp/createDb2*;;
           4)  ;;               
      esac
      break
    done
done
    
por 22.08.2012 / 06:15