Caractere de avanço de linha disperso no final da saída completa do bash

0

Então, eu rotineiramente empurro os aplicativos para o segundo plano e alterno entre eles. Eu percebi que fg não tem uma aba completa definida.

Então eu pensei em montar uma aba completa para fg rapidamente com as sugestões vindas do comando jobs. Eu não verifiquei se algo como isso já existe online, porque isso parecia um projeto divertido de se construir. Aqui está o meu código até agora:

job(){
  readarray COMPREPLY < <(jobs -l)
  for i in "${!COMPREPLY[@]}"; do
      printf -v pad %*s -$COLUMNS "${COMPREPLY[i]}"
      COMPREPLY[i]="%"${pad//[][]}
  done
}

O problema é que no final de cada sugestão há um caractere de avanço de linha (^ j) aparecendo, por exemplo:

%1 53967 Stopped vim^J

%2 54257 Stopped python^J

%3 54499 Stopped (signal) nano^J

%4- 42270 Stopped vim ~/.bashrc^J

%5+ 47434 Stopped vim ~/.bashrc^J

    
por Aditya 12.08.2018 / 08:09

1 resposta

1

De help mapfile sinônimo de readarray:

Options:
-t Remove a trailing DELIM from each line read (default newline)

Adicione essa opção à sua chamada de readarray para aparar as novas linhas à direita.

    
por 12.08.2018 / 08:26