O que, se houver, é o equivalente do select de bash… in… do..done in fish?

1

Eu tinha finessed no bash uma função que muda para qualquer diretório abaixo do diretório de trabalho atual, tendo esse nome de diretório como um parâmetro para a função. Se houver vários resultados com esse nome, um menu será exibido para permitir que o usuário escolha o destino pretendido. O código bash é:

function cdb() {
  select dir in $(find -type d -name "$1" -not -path '*/\.*' -prune);
  do
    cd "${dir}" && break;
  done 
}

Um exemplo disso seria:

android@cybaryme:~/octos$ cdb av
1) ./frameworks/av
2) ./system/bt/bta/av
#? 1
android@cybaryme:~/octos/frameworks/av$

Eu uso peixe a maior parte do tempo e gostaria de ter essa função lá também. Mas para a vida de mim não consigo encontrar o comando select, ou seu equivalente. Possivelmente pensei que "completo" faria o trabalho, mas fiquei confuso sobre o que é para isso.

Alguém pode esclarecer o que está disponível? Ou talvez um exemplo de um script Perl que possa corrigir as lacunas que faltam?

    
por Joel Maxuel 17.05.2017 / 00:55

1 resposta

1

Fish não possui um comando select . Nem posso encontrar qualquer indicação de que alguém tenha solicitado que seja adicionado. Você pode encontrar um exemplo de como fazer o equivalente em algumas das funções que acompanham o peixe, bem como minha função mcd que provavelmente será adicionado ao pacote principal. Observe que minha implementação permite selecionar por número ou letra, o que é uma conveniência bastante útil. Sinta-se à vontade para abrir uma solicitação de aprimoramento .

    
por 17.05.2017 / 02:50

Tags