Como armazenar a impressão do último comando em uma variável do shell em urxvt / zsh?

2

Eu gostaria que a impressão (stdout e stderr) do último comando fosse executada dentro do zsh disponível em uma variável pronta para usar grep , etc.

    
por danijar 29.02.2016 / 01:44

2 respostas

1

Você pode redirecionar a saída de um comando para um arquivo (ou até mesmo uma variável), mas isso não acontece automaticamente.

Redirecionar saída é um tópico grande na página de manual. Apenas para lembrá-lo do termo, isso redireciona a saída padrão e o erro:

foo=$(command 2>&1)

verificado por

$ foo=$(oops 2>&1); date; echo "$foo"
Sun Feb 28 20:59:18 EST 2016
sh: 1: oops: not found

Leitura adicional:

por 29.02.2016 / 03:00
1

Você pode configurar um pager para capturar a saída e, em seguida, sair se ela couber em uma tela. Quando não couber, você pode usar o pager para rolar e pesquisar.

export PAGER=less
export LESS=-FSXRi
# -F and -X are relevant here, but that's what I use
# also, less quickly toggles most by typing '-' and the option

Eu imagino que o zsh tem uma maneira de modificar automaticamente comandos para passar por um pager, mas eu não sei como.

Compare essa saída com um diretório diferente que cabe em uma tela:

find ~ -type f |& less
# |& to capture both stdout and stderr
    
por 07.04.2016 / 16:46