2015-08-13 82 views
1

是否有任何方法将命令保存为bash历史记录中的多行命令,然后上下浏览以进行一些编辑并再次运行它?现在Bash多行命令中的向上/向下导航

$ shopt -s cmdhist 
$ shopt -s lithist 
$ echo "1"\ 
&& echo "2"\ 
&& echo "3" 

,如果我打的向上箭头我想看到的

$ echo "1"\ 
&& echo "2"\ 
&& echo "3" 

..again,但庆典给我echo "1"&& echo "2"&& echo "3"。即尽管设置了cmdhistlithist标志,但它删除了新行。

如果向上箭头工作并显示多行命令,我该如何上下导航?

+3

不,我不认为有任何简单的方法来实现这一点。 – tripleee

回答

2

Bash作为\Bash中忽略换行符之前是不可能的。从man bash

未加引号的反斜杠()是转义字符。它保留了下一个字符的文字值 ,其中 是例外。如果出现\对,并且反斜杠不是 本身的引用,则\将被视为续行(即 是,它将从输入流中移除并被有效忽略)。

如果你愿意改变你的shell或要进行实验,看看zsh,它可以做你在找什么:

$ echo a \ 
echo b 

Ç - p看看该换行符被保留:

$ echo a \ 
echo b