使用命令[$ ls -f]

时间:2016-07-17 06:37:26

标签: bash git-bash

我是bash的新手。 我尝试此命令来查找当前路径下的文件夹:

$ ls -F | grep "/"

但有时我会输入错误,如grep" \"它会跟随无限的">"。 在这种情况下,我可以键入类似':',w,q,...但只是文本,我无法键入其他命令。 看起来像这样:

$ ls -F | grep"\"
>
>:wq
>exit
>blablabla
>
谁能告诉我如何摆脱这些可怕的">"? 谢谢你救我

2 个答案:

答案 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。当然还有其他方法可以实现这一目标,尽管这可能有助于您理解手头的问题。