如果我输入例如
grep 'needle
>
我被发送到一个神秘的>
提示,其中ctrl- C(或重新启动终端)似乎是唯一的出路。
- 这是什么提示?
- ctrl为什么我输入-时它不会终止Z?
- 为什么它不能更好地设计来检测被困的新手?当然,也许在某些荒谬的极端情况下,打开此
>
提示然后输入类似 的内容是有原因的"quit\nexit\nhelp\nCTRL-Z\nlogout\n"
,但如果用户开始输入这些内容,Ubuntu 至少应该发出一条有用的响应消息(例如,“您是否试图退出此提示?如果是,请使用CTRL- C。如果不是,请忽略此消息。”)这不会干扰提示所服务的任何奇怪目的。
答案1
这是因为您打开了一个引号("
或'
),因此 shell 假定命令正在继续,这个字符表示什么>
。因此,直到结束引号,您都会收到>
提示以完成已启动的命令。
当您想要回显其中包含换行符的内容时,例如:
user@host:~$ echo "this
> is a text
> with multiple
> newlines"
输出:
this
is a text
with multiple
newlines
要中止,您也可以按Ctrl+ c。
答案2
没什么神秘的。该提示符 ( >
) 表明 shell 正在等待第二个引号'
和文件名来完成命令。如果您想搜索,'needle
请使用:
grep \'needle filename
并且Control+Z用于暂停工作,但是您没有仅通过输入 来启动任何工作grep 'needle
。
第三点,我想说,对于真正使用终端的用户来说,这听起来很荒谬。另外:您认为终端如何检测某人是否是新手?如果有人真的想输入这些字符串:“退出、帮助、注销”怎么办?
也可以看看:
答案3
提示符只是标准输入。' 字符被解释为“字符串的开头”,因此它接受结束的 '。当您在结束 ' 之前按下回车键时,它被解释为换行符。您可以继续写您想要的内容。当您输入 ' 并按下回车键时,它会获取您编写的整个字符串