中使用
当我使用命令行时,我可以通过使用C-P或向上箭头来回忆历史。但是,当试图回忆输入到here-document时,这不起作用。
# cat <<!
> a
> b
> c
> !
a
b
c
# cat <<! # C-p to get here, expected to see ! as last input. C-c to break out
# history 2
2053 cat <<!
2054 history 2
我使用rxvt。
注:当在emacs
shell
时,此功能可以正常工作。shopt -s cmdhist
cat <<!
a
b
c
!
history | tail ...
8580 cat <<!
a
b
c
!
cmdhist shell选项,如果启用,将导致shell尝试将多行命令的每一行保存在同一历史记录中条目,在必要的地方添加分号以保持语法正确性。
lithist shell选项使shell保存命令使用嵌入换行符代替分号。
From man bash
我有同样的问题。Bash 3.2.49(1)发布
psql <<EOF
SELECT * FROM blah;
EOF
我的历史只保留了第一行。我已经得到cmdhist(和lithist)设置,它们适用于其他多行命令,但不适用于本文。悲剧。
一个变通方法是:
echo "
SELECT *
FROM blah
" | psql