如何启用历史记录来记录这里的文档及其输入



当我使用命令行时,我可以通过使用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

相关内容

  • 没有找到相关文章

最新更新