我是bash的新手。 我尝试此命令来查找当前路径下的文件夹:
$ ls -F | grep "/"
但有时我会输入错误,如grep" \"它会跟随无限的">"。 在这种情况下,我可以键入类似':',w,q,...但只是文本,我无法键入其他命令。 看起来像这样:
$ ls -F | grep"\"
>
>:wq
>exit
>blablabla
>
谁能告诉我如何摆脱这些可怕的">"?
谢谢你救我
答案 0 :(得分:0)
尝试 Ctrl + D 这将是signal the end of input。
(也称为“end of transmission”)
这样,你就可以恢复你的bash会话。
在您的情况下,如下面提到Gordon Davisson, Ctrl + C 我们就足够了。
我在GNU bash中测试了两个版本4.3.46(2)-release(x86_64-pc-msys)(来自最新的git 2.9.2)
Ctrl + C 将在显示后返回bash(无注销)
bash: unexpected EOF while looking for matching `"'
Ctrl + C 将立即返回bash。
答案 1 :(得分:0)
在使用反斜杠的bash中,通常会转义后续角色。
$ echo "\" # this escapes the last double quote but does not complete the command
因此grep认为命令不完整并继续允许输入>
。
$ echo "back\slash" | grep "\"" # notice there is a second trailing double quote
要完成命令,请提供缺少的结束双引号 (这次没有转义!)。 triplee
虽然上一个例子完成了命令,但它实际上告诉grep搜索双引号("
)。为了指示grep搜索反斜杠(我相信最初的意图),那么\
将需要被转义三次(允许它在双引号内工作):
$ echo "back\slash" | grep "\\\\"
如果没有正确转义,您可能会收到错误grep: Trailing backslash
。当然还有其他方法可以实现这一目标,尽管这可能有助于您理解手头的问题。