출력 너비에 터미널 열 맞추기

출력 너비에 터미널 열 맞추기

mysql select/command의 출력이 기본 터미널 열 세트(80)를 넘어서 멋지게 형식화되어 터미널 창의 크기를 조정하여 모든 열을 한 행에 표시할 수 있다는 것을 알았습니다. 구성하는 방법? 나는 80자보다 긴 주석이 포함된 HERE 문서로 작업하고 있으며 이를 SSH 세션에 전달하고 있지만(나중에 출력에서 ​​해당 주석을 보는 것은 괜찮습니다) 줄로 확장하는 대신 다음과 같이 끝납니다. 81번 위치에 문자를 입력하고 다음과 같은 메시지가 표시되면 내 로그인을 덮어씁니다.

이것은 내 스크립트입니다.

#!/bin/bash
ssh -A -tt -l user1 192.168.1.10 <<ABC
#-----------------------------------------------------
#comments are very useful for explaining what does your code actually do. And sometimes they can be very long.
#-----------------------------------------------------
some_command
exit
ABC

이것은 내 결과입니다.

[user@server ~]$ #-----------------------------------------------------
 actually do. And sometimes they can be very long.explaining what does your code
[user@server ~]$ #-----------------------------------------------------

편집하다

예상되는 결과:

[user@server ~]$ #-----------------------------------------------------
[user@server ~]$ # comments are very useful for explaining what does your code actually do. And sometimes they can be very long. Even over 80 characters.
[user@server ~]$ #-----------------------------------------------------

그것을 피하는 방법을 아시나요?

답변1

tty할당( )을 강제하고 있지만 ssh -tt터미널의 크기가 잘못 설정되었을 것입니다(아마 크기가 없을 것임). 해당 옵션이 필요하다고 가정하면 -tt터미널 크기를 설정하는 줄을 사용하여 스크립트를 시작할 수 있습니다.stty

#!/bin/bash
ssh -A -tt -l user1 192.168.1.10 <<ABC
stty $(stty size | sed 's/ / cols /;s/^/rows /')
#-----------------------------------------------------
#comments are very useful for explaining what does your code actually do. And sometimes they can be very long.
#-----------------------------------------------------
some_command
exit
ABC

여기서는 stty터미널의 실제 크기를 사용하여 명령을 작성합니다. 현재 터미널이 80x25이면 stty size생성되고 25 80교체 후 생성된 명령은 stty rows 25 cols 80.

관련 정보