여러 줄에 기록 항목을 올바르게 표시하는 방법


15

세미콜론을 사용하여 bash 프롬프트에 여러 줄로 입력하는 대신 함수를 입력했다고 가정 해보십시오.

$ function blah {
  echo blah
}
$ history -1
12690  function blah {\necho blah\n}

'\ n'대신 실제 줄 바꿈 문자로 표시하려면 어떻게합니까?

답변:


21

shopt명령을 사용하여 Bash 내에서이 기능을 활성화 및 비활성화 할 수 있습니다 . 배쉬 맨 페이지에서.

발췌

cmdhist   If set, bash attempts to save all lines of a multiple-line
          command in the same history entry.  This allows  easy  re-editing 
          of multiline commands.

lithist   If  set,  and the cmdhist option is enabled, multi-line commands 
          are saved to the history with embedded newlines rather than using 
          semicolon separators where possible.

기능을 활성화합니다

$ shopt -s cmdhist
$ shopt -s lithist

기능을 비활성화합니다

$ shopt -u cmdhist
$ shopt -u lithist

$ shopt -s cmdhist
$ shopt -s lithist

이제 내가 실행할 때 history:

   70  text=$(cat<<'EOF'
hello world\
foo\bar
EOF)
   71  text=$(cat<<'EOF'
hello world\
foo\bar
EOF
)
   72  ls
   73  cd IT/
...
...
  414  shopt -s lithist 
  415  history | less
  416  function blah {
  echo blah
}
  417  history | less
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.