Bash에서 명령 뒤에 수직 공간 추가

Bash에서 명령 뒤에 수직 공간 추가

Bash의 모든 명령 뒤에 수직 공간을 추가하는 방법은 무엇입니까?

약간의 수직 공간을 찾아보세요.아니요완전한 라인. 행 높이의 1/4 또는 1/3이 좋습니다.

[편집] 추가할 공간은 명령+출력 패키지 뒤에만 있습니다. 명령과 관련 출력 사이의 줄은 여전히 ​​기본 간격을 사용합니다. 예: do 는 ls일반 줄 간격을 사용하여 출력을 표시합니다. 출력 후에만 다음 명령+출력과 명령+출력 쌍을 명확하게 구분하기 위해 간격이 늘어납니다.

답변1

이는 bash 옵션이라기보다는 "터미널 애플리케이션" 기능/구성 옵션에 가깝습니다. Bash는 터미널과 관련된 글꼴이나 공백에 대해 모릅니다.

예: Mac Os X의 터미널 프로그램은 줄 사이에 더 많은 공간을 허용합니다.http://osxdaily.com/2015/01/05/increase-line-spacing-terminal-mac-os-x/

이것이 당신이 찾고 있는 것이라면, 터미널 프로그램을 확인하여 이를 구성할 수 있는지 확인해야 합니다.

편집: 명령 자체의 출력 뒤에 추가 공백을 추가하려면 다음을 시도하십시오.

export PS1='\n\[\033[01;31m\]\u@\H:\[\033[02;36m\] \w \$\[\033[00m\] '

전체 줄(\n)을 추가하지만 없는 것보다 나을 수도 있습니다.

답변2

나는 이러한 라인을 따라 지원하는 터미널 에뮬레이터를 알지 못합니다. 터미널(또는 그래픽 터미널 에뮬레이터)의 기본 개념은 텍스트 그리드를 사용하는 것입니다. 화면은 동일한 크기의 셀 매트릭스로 나누어지며, 각 셀에는 문자가 포함됩니다. 간단한 텍스트 스트림을 인쇄할 수 있지만 그리드 내의 아무 곳에나 커서를 놓고 셀의 내용을 덮어쓸 수도 있습니다.

두 개의 인접한 셀을 차지하는 CJK 문자와 같은 몇 가지 예외가 있으며 xterm은 일반 문자를 두 배 너비 및/또는 두 배 높이로 인쇄하는 것도 지원합니다(터미널 테스트를 제외하고는 어디에서나 사용되는 것을 본 적이 없습니다). 그러나 여전히 정렬되어 있습니다. 기본 그리드.

당신이 요구하는 것은 전체 개념을 처음부터 다시 디자인하는 것입니다. 현재 존재하지 않는 방식으로 임의의 위치 지정을 허용하고, 이전에 인쇄된 문자와 부분적으로 겹치는 위치에 문자가 인쇄되는 경우 발생하는 상황을 결정합니다.

이로 인해 한계 이득을 위해 터미널 에뮬레이터가 제공하는 것보다 더 복잡한 시스템이 생성됩니다.

명령 출력의 끝 부분을 눈에 띄게 만들기 위해 제가 추천할 수 있는 것은 힌트에 특별한 색상(굵게, 기울임꼴 또는 유사한 글꼴)을 사용하는 것입니다.

답변3

파일에 다음 내용을 넣으세요.

command1()
{
    if [ "$BASH_COMMAND" != command2 ]
    then
        command_flag=1
    fi
    return 0
}
trap command1 debug
command2()
{
    if [ "$command_flag" ]
    then
        echo ""
    fi
    command_flag=
}
PROMPT_COMMAND=command2

command1이름을 변경 하고 입력할 가능성이 없는 값으로 변경 command2하는 것이 좋습니다 . command_flag그럼 source그 파일. (또는 위의 내용을 귀하의 것에 넣으십시오 .bashrc.)

명령을 입력할 때마다 trap command1 debug명령이 이 함수를 호출합니다. command1command1함수는 command_flag명령이 있음을 나타내는 플래그를 설정합니다. ( command1을 클릭해도 이 함수는 호출되지 않습니다 Enter.)

PROMPT_COMMAND=command2command2쉘이 프롬프트를 발행하려고 할 때마다 PS1이 함수가 호출되도록 합니다 . 이 command2함수는 command_flag플래그를 확인하여 명령을 입력했는지 아니면 그냥 Enter. 명령을 입력하면 화면에 빈 줄이 기록됩니다 command_flag. command2(한 줄의 수직 공간을 작게 만드는 방법을 알아낸 경우 명령을 변경하십시오 .) 을 echo클릭하기만 하면 설정되지 않습니다. 그러면 다음 프롬프트가 올바르게 완료되도록 플래그가 지워집니다.Entercommand_flag

이 함수 는 command1쉘이 실행될 command2때 호출 되므로 command1특별한 경우로 처리되어야 합니다(명령으로 간주되지 않음).

관련 정보