如何启用历史记录来记录此处文档及其输入?

发布于 2024-12-16 21:47:38 字数 358 浏览 0 评论 0原文

当我使用命令行时,我可以使用 CP 或向上箭头来调用历史记录。然而,当尝试调用此处文档的输入时,这不起作用。

# 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。

PS 在 emacs 中使用 shell 时,此功能可以正常工作

When I use the command line I can recall history by using C-P or up arrow. However this does not work when trying to recall input to a 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

I'm using rxvt.

P.S. This feature works correctly when using shell within emacs

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鹿港小镇 2024-12-23 21:47:38
shopt -s cmdhist

cat <<!
a
b
c
!

history | tail ...
8580  cat <<!
a
b
c
!

cmdhist shell 选项如果启用,会导致 shell 尝试
将多行命令的每一行保存在同一历史记录中
条目,在必要时添加分号以保留语法
正确性。

lithist shell 选项使 shell 保存命令
使用嵌入的换行符而不是分号。

来自 man bash

shopt -s cmdhist

cat <<!
a
b
c
!

history | tail ...
8580  cat <<!
a
b
c
!

The cmdhist shell option, if enabled, causes the shell to attempt
to save each line of a multi-line command in the same history
entry, adding semicolons where necessary to preserve syntactic
correctness.

The lithist shell option causes the shell to save the command
with embedded newlines instead of semicolons.

From man bash

黑色毁心梦 2024-12-23 21:47:38

我有同样的问题。 Bash 3.2.49(1)-release

psql <<EOF
SELECT * FROM blah;
EOF

我的历史记录仅保留第一行。我已经设置了 cmdhist (和 lithist),它们对于其他多行命令运行良好,但不适用于heredocs。悲惨。

解决方法是:

echo "
SELECT *
FROM blah
" | psql

I have the same problem. Bash 3.2.49(1)-release

psql <<EOF
SELECT * FROM blah;
EOF

My history only preserves the first line. I have got cmdhist (and lithist) set, and they work fine for other multi-line commands, but not for heredocs. Tragic.

A workaround is:

echo "
SELECT *
FROM blah
" | psql
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文