Existe um comando para copiar a linha acima dentro do terminal? (por exemplo, copiar a saída de pwd)

0

Existe um comando para copiar a linha acima no terminal? Esta é uma questão agnóstica de shell (por exemplo, bash, zsh, etc.) basicamente eu estou usando pwd e quero copiar a saída sem ter que digitar o diretório longo no meu próximo comando.

    
por Wunderbread 20.01.2017 / 23:22

1 resposta

2

O Bash não armazena automaticamente o stdout ou stderr do comando anterior. Principalmente não faz isso por motivos de desempenho. Ele poderia ocupar bastante memória RAM se a saída stdout fosse muito grande, como às vezes é o caso.

É também por isso que os emuladores de terminal, desde o Linux VT até gnome-terminal , impõem um limite razoavelmente pequeno na quantidade de buffers de scrollback (número de linhas que você pode rolar) antes de "encadernar".

Colocar muita memória RAM automaticamente e sem avisar o usuário diminuiria bastante o shell para os muitos scripts e sequências de comando que não exigem esse comportamento específico.

Em vez disso, o usuário deve saber antecipadamente que deseja armazenar o stdout e, em seguida, pode referenciá-lo em seus comandos posteriores.

Duas maneiras de fazer isso:

  • echo $(pwd) - em linha
  • MYPWD=$(pwd); echo ${MYPWD} - separar a variável para capturar a saída e depois referenciá-la mais tarde

BTW, você pode verificar a variável de ambiente PWD . Pode ajudá-lo a usar o caminho 2.

    
por 20.01.2017 / 23:48