Unix 프롬프트에서 백슬래시를 사용하여 명령을 분할할 때 발생하는 문제

Unix 프롬프트에서 백슬래시를 사용하여 명령을 분할할 때 발생하는 문제

나는 종종 공백-백슬래시 조합( )을 사용하여 명령과 해당 인수를 더 읽기 쉽게 만들기 위해 별도의 줄로 분할합니다.

/home/user> ls -ltra \
> file1.txt \
> file2.txt

최근에 나는 터미널 창에서 비슷한 형식의 명령을 사용하고 있습니다. 동일한 파일을 다양한 명령어에 사용할 예정이었기 때문에 명령어 전체를 마우스로 강조\복사하여 열려있는 에디터에 붙여넣기로 했습니다.
안타깝게도,

  1. 방금 마우스로 두 개의 파일 라인을 강조 표시했습니다.
  2. 동일한 터미널 창에 잘못 붙여넣은 경우:

이와 같이:

/home/user> > /home/user/file1.txt
> > /home/user/file2.txt

그들의 시스템은 내가 파일을 덮어쓰고 있다고 생각했습니다. 데이터가 손실됩니다. 다행히 백업이 있습니다!

이제 내 질문은 다음과 같습니다.

분할 명령 시작 부분에 > 기호 이외의 기호를 사용하도록 터미널 세션을 재구성할 수 있습니까? 그런 끔찍한 결과는 없습니다.

예:

/home/user> ls -ltra \
# file1.txt \
# file2.txt

고쳐 쓰다

저는 Solaris 서버에서 Korn 쉘(/usr/bin/ksh)을 사용하고 있습니다. Korn은 회사의 기본 쉘입니다.

답변1

sh호환 가능한 셸(예 : )을 사용하는 경우 bash>프롬프트를 "보조 프롬프트"라고 합니다. 일반 프롬프트를 설정하는 PS2것과 마찬가지로 변수 값으로 설정됩니다 .PS1

다음과 같이 쉽게 변경할 수 있습니다 #.

PS2='# '

~/.bashrc이것을 당신의 (또는 당신이 사용하고 있는 쉘에 상응하는 것) 에 넣을 수도 있습니다 .

답변2

"시스템" 기반이 아닙니다. 이는 쉘을 기반으로 합니다.

Bash 또는 기타 Bourne 쉘에서

   PS2    The  value of this parameter is expanded as with PS1 and used as
          the secondary prompt string.  The default is ``> ''.

관련 정보