¿Por qué pbpaste no devuelve el cursor a la nueva línea en bash?

1

Ejecuto el comando pbpaste en la Terminal (bash) para obtener el resultado de mi portapapeles, pero a diferencia de otros comandos que dejan el cursor en una nueva línea debajo del stdout anterior, pbpaste lo deja a la derecha , como en el ejemplo, mostrando el comando intercalado entre dos echo hello s:

hostname:~ jesse$ echo hello
hello
hostname:~ jesse$ pbpaste
https://itunes.apple.com/us/app/noizio/id928871589?mt=12hostname:~ jesse$ echo hello
hello
hostname:~ jesse$ 

¿Por qué es así? Parece muy extraño y hace que sea difícil de leer.

    
pregunta jsejcksn 08.04.2016 - 12:06

2 respuestas

6

pbpaste pega exactamente lo que usted copia.

En su caso, ha copiado la línea sin incluir el CR / LF al final. Para obtener la devolución, debe copiar desde el inicio de la línea hasta el inicio de la siguiente línea

Del comentario de @patrix

La mayoría de los comandos terminan con un CR / LF. p.ej. echo "Hello" lanzará una nueva línea, sin embargo, para el eco se puede cambiar echo -n "Hello" .

Si lo deseas, puedes agregar una nueva línea después de un pbpaste usando echo "$(pbpaste)" en su lugar.

    
respondido por el Mark 08.04.2016 - 12:26
-1

Esto no responde directamente a tu pregunta sobre pbpaste específicamente, pero soy usuario de zsh (con oh-my-zsh ) y maneja el escenario que describe con el resultado que desea para cualquier salida de terminal.

➜  ~ echo -n hello
hello%                                                                          
➜  ~
➜  ~
➜  ~ /bin/bash
bash-3.2$ echo -n hello
hellobash-3.2$

Me doy cuenta de que está sacando a relucir la bazuca para matar un mosquito , pero resuelve tu problema real donde la falta de una nueva línea sobre lo que pegaste no se maneja con gracia.

    
respondido por el whaley 08.04.2016 - 13:28

Lea otras preguntas en las etiquetas