Existe um equivalente ao "Switch" do PowerShell no bash?

2

Eu estava curioso para saber se existe ou não um equivalente ao comando "Switch" do PowerShell que permite manobrar com a entrada em vez de usar uma infinidade de "instruções if"

    
por Paco R. 19.04.2018 / 20:25

1 resposta

11

Se você está procurando uma variável para determinar o fluxo, você quer usar uma declaração case .

case "$var" in
   val1)
      do_something
      ;;
   val2)
      do_something_else
      ;;
esac

Se você deseja interativamente obter informações do usuário, também deseja usar uma instrução select .

select action in proceed ponder perspire quit; do
    case "$action" in
        proceed)
           go_on_then
           ;;
        ponder)
           have_a_think
           ;;
        perspire)
           exude_salty_secretions
           ;;
        quit)
           break
           ;;
    esac
done
    
por 19.04.2018 / 20:33