当HereDoc分隔符为""时,如何让POSIX Shell命令停止等待输入?
问题解答
首先明确核心逻辑:当你执行cat << ""时,按照POSIX标准,引号被移除后生成的分隔符是空字符串。而POSIX对空分隔符的HereDoc有特殊规则——此时Shell不会等待匹配某一行,而是会持续读取输入,直到**输入流的结束标记(EOF)**出现。
在交互式bash环境里,触发EOF的标准操作就是按下Ctrl+D(类Unix系统通用),这属于完全正常的输入结束方式,不需要发送终止进程的信号。操作流程是:执行cat << ""后,你可以输入任意内容,最后按下Ctrl+D,cat会输出你输入的所有内容并正常退出。
你之前尝试输入"、""这些都没用,是因为分隔符已经是空了,Shell根本不会去匹配这些字符串,只会等输入流结束。
内容的提问来源于stack exchange,提问作者iury
相关产品推荐
相关产品推荐

