Làm thế nào để có được một mục lịch sử để hiển thị đúng trên nhiều dòng


15

Giả sử tôi đã nhập một hàm tại dấu nhắc bash, trên nhiều dòng thay vì ép nó vào một dấu bằng dấu chấm phẩy:

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

Làm cách nào để hiển thị thông tin này với các ký tự dòng mới thực sự thay vì '\ n'?

Câu trả lời:


21

Bạn có thể bật và tắt tính năng này trong Bash bằng shoptlệnh. Từ trang Bash người đàn ông.

đoạn trích

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.

Bật tính năng

$ shopt -s cmdhist
$ shopt -s lithist

Tắt tính năng

$ shopt -u cmdhist
$ shopt -u lithist

Thí dụ

$ shopt -s cmdhist
$ shopt -s lithist

Bây giờ khi tôi chạy 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.