Uruchamiam polecenie pbpaste
w Terminalu (bash), aby uzyskać wynik mojego schowka, ale w przeciwieństwie do innych poleceń, które pozostawiają kursor w nowym wierszu poniżej poprzedniego stdout, pbpaste
pozostawia go po prawej stronie, jak w przykładzie, pokazując polecenie wciśnięty między dwa 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$
Dlaczego tak jest? Wydaje się to bardzo dziwne i trudne do odczytania.
macos
terminal
command-line
bash
jsejcksn
źródło
źródło
Odpowiedzi:
pbpaste wkleja dokładnie to, co kopiujesz.
W twoim przypadku skopiowałeś linię nie zawierającą CR / LF na końcu. Aby uzyskać zwrot, musisz skopiować od początku linii do początku następnego wiersza
Od komentarza @patrix
Większość poleceń kończy się CR / LF. np.
echo "Hello"
wypisze nową linię, jednak dla echa można to zmienićecho -n "Hello"
.Jeśli chcesz, możesz dodać nową linię po pbpaste, używając
echo "$(pbpaste)"
zamiast tego.źródło
pbpaste
wyświetla cokolwiek znajduje się w schowku, który zwykle nie zawiera nowej linii.echo some text
domyślnie dodaje znak nowej linii, ale to jest coś, z czym można zapobiececho -n some text
. Jeśli chcesz zapewnić nową linię popbpaste
, użyjecho $(pbpaste)
zamiast niej.echo
,ls
etc.) i poleceń przeznaczonych do powrotu tekstowych / danych skądś. Te pierwsze automatycznie dodają nową linię, później tylko zwracają (drukują) to, co dostały (co w przypadku schowka może być lub może być bez nowej linii).Nie odpowiada to bezpośrednio na twoje pytanie dotyczące pbpaste, ale jestem użytkownikiem zsh (z oh-my-zsh ) i obsługuje scenariusz, który opisujesz, z wynikiem, który chcesz dla każdego wyjścia terminala.
Zdaję sobie sprawę, że wyciąga bazookę, by zabić komara , ale rozwiązuje twój prawdziwy problem, gdzie brak nowej linii na tym, co wkleiłeś, nie jest traktowany z wdziękiem.
źródło