関数をセミコロンで1つに絞るのではなく、bashプロンプトで複数行で入力したとします。
$ function blah {
echo blah
}
$ history -1
12690 function blah {\necho blah\n}
これを「\ n」ではなく実際の改行文字で表示するにはどうすればよいですか?
関数をセミコロンで1つに絞るのではなく、bashプロンプトで複数行で入力したとします。
$ function blah {
echo blah
}
$ history -1
12690 function blah {\necho blah\n}
これを「\ n」ではなく実際の改行文字で表示するにはどうすればよいですか?
回答:
shopt
コマンドを使用して、Bash内でこの機能を有効または無効にできます。Bashのmanページから。
抜粋
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