Come ottenere una voce della cronologia da visualizzare correttamente su più righe


15

Supponiamo di aver inserito una funzione al prompt di bash, su più righe anziché comprimendola su una con punti e virgola:

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

Come si fa a visualizzarlo con caratteri di nuova riga reali anziché "\ n"?

Risposte:


21

Puoi abilitare e disabilitare questa funzione in Bash usando il shoptcomando. Dalla pagina man di Bash.

estratto

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.

Abilita la funzione

$ shopt -s cmdhist
$ shopt -s lithist

Disabilita la funzione

$ shopt -u cmdhist
$ shopt -u lithist

Esempio

$ shopt -s cmdhist
$ shopt -s lithist

Ora quando corro 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.