답변:
파일 디스크립터를 사용하여 이와 같은 작업을 수행 할 수 있습니다.
나중에 출력 할 수 있도록 현재 출력 설명자를 저장하십시오.
exec 3>&1
출력 스트림을 탭을 삽입 하는 프로세스 대체로 경로 재 지정하십시오 ( 예 :
exec 1> >(paste /dev/null -)
이 시점에서 표준 출력에 쓰는 프로세스 paste
는 시작시 탭을 삽입 하는 명령을 통해 출력이 '필터링'됩니다 .
완료되면 저장된 파일 디스크립터를 복원하고 임시 디스크립터를 닫아서 정상적인 동작을 재개 할 수 있습니다
exec 1>&3 3>&-
less
예를 들어 출력을 스크롤 할 수 있도록 유사한 툴을 사용하는 프로그램의 출력을 차단합니다 man
.
나는이 대답이 당신에게 최적이 아니라는 것을 이해하지만, 간단한 이름 _
(또는 아직 사용되지 않은 다른 것)으로 Bash 함수를 만들 수 있습니다.이 명령은 인수로 가져오고 탭으로 모든 출력을 들여 쓰기합니다.
예를 들면 :
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
이 함수의 코드는 다음과 같습니다.
_(){ sed "s/^/\t/" <($*); }
~/.bashrc
다음을 실행하여 사용자의 모든 Bash 세션에서 사용할 수 있도록 파일에 파일 을 추가 할 수 있습니다 .
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
모든 사용자가 사용할 수있게하려면 /etc/bash.bashrc
대신 추가하십시오 (관리자 권한 필요).
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
또는 /usr/local/bin/_
Bash 기능을 사용하지 않고 모든 사용자에 대해 다음과 같은 내용으로 스크립트 파일을 작성 하여 동일한 결과를 얻을 수도 있습니다 .
#!/bin/bash
sed "s/^/\t/" <($*)
파일을 저장 한 후 스크립트를 실행 가능하게 만들어야합니다.
sudo chmod +x /usr/local/bin/_
로 echo
특히, 당신은 같은 백 슬래시 이스케이프 해석 할 수 있습니다 \t
(A 탭 정지를 로) -e
스위치 :
echo -e "\tHello World"
그러나 모든 명령의 출력을 그런 식으로 수정하는 것은 불가능할 것입니다. 읽기 쉬운 것이 목표라면 다음과 같이 명령 프롬프트의 모양 (예 : 채색)을 사용자 정의하는 것이 좋습니다.
환경 변수의 내용을 변경하여 프롬프트를 사용자 정의 할 수 있습니다 PS1
. 위 스크린 샷 의 블로그 게시물 에서이를 수행하는 방법에 대한 작은 예를 볼 수 있습니다 . 소위 ANSI 이스케이프 시퀀스를 사용하는 방법,보다 편안한 도구 사용 방법, 새로운 터미널에서 기본적으로 변경 사항을 적용하는 방법 등은이 답변의 범위를 벗어납니다. 그러나이 기술을 사용하기로 결정하면 웹에 대한 많은 자습서와 추가 정보가 있습니다.
YOUR COMMAND | indent
하거나 명령 앞에 다른 명령을 입력 해야하는 경우 (밑줄 만 가능) 괜찮_ YOUR COMMAND
습니까?