当我使用命令行时,我可以使用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时,此功能可以正常工作
发布于 2011-12-04 22:15:49
shopt -s cmdhist
cat <<!
a
b
c
!
history | tail ...
8580 cat <<!
a
b
c
!cmdhist shell选项,如果启用,则会导致shell尝试将多行命令的每一行保存在同一历史记录条目中,并在必要时添加分号以保持语法正确。
shell的lithist选项会导致shell使用嵌入的换行符而不是分号来保存命令。
来自man bash
发布于 2013-08-08 20:59:38
我也有同样的问题。Bash 3.2.49(1)-release
psql <<EOF
SELECT * FROM blah;
EOF我的历史只保留了第一行。我已经设置了cmdhist (和lithist),它们可以很好地用于其他多行命令,但不适用于heredocs。真是悲剧。
一种解决方法是:
echo "
SELECT *
FROM blah
" | psqlhttps://stackoverflow.com/questions/8208264
复制相似问题