Bash多行命令中的上/下导航

Jir*_*ser 4 bash

有什么方法可以将命令作为多行命令保存到bash历史记录中,然后向上和向下导航以进行一些编辑并再次运行?

$ shopt -s cmdhist
$ shopt -s lithist
$ echo "1"\
&& echo "2"\
&& echo "3"
Run Code Online (Sandbox Code Playgroud)

现在,如果我按向上箭头,我想看看

$ echo "1"\
&& echo "2"\
&& echo "3"
Run Code Online (Sandbox Code Playgroud)

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

如果向上箭头起作用并显示了多行命令,如何在其中上下导航?

Ark*_*zyk 5

Bash\之前的换行符被忽略之前一样,这是不可能的Bash。来自man bash

不带引号的反斜杠()是转义字符。它会保留下一个字符的字面值,但除外。如果出现一个\对,并且反斜杠本身未加引号,则\被视为行的延续(即,它已从输入流中删除并被有效忽略)。

如果您愿意更改外壳或想尝试签出zsh,它可以满足您的需求:

$ echo a \
echo b
Run Code Online (Sandbox Code Playgroud)

C-键,p并保留换行符:

$ echo a \
echo b
Run Code Online (Sandbox Code Playgroud)