在Linux中键入\或`后的子命令行

时间:2016-08-01 22:51:42

标签: linux bash command-line sh

当我在Linux命令行中输入字符\或`(反引号)时,显示的子输入终端是什么?它显示了我所假设的包含单个">"的提示。字符。 (见下图)

它似乎是一个脚本终端(如python'>>>")。

enter image description here

我试过问Google,但这个问题很难解释。

3 个答案:

答案 0 :(得分:3)

只是在等待收盘反击。

您可以使用这些反引号从突击队获取输出并将其分配给变量。如果你做myvar=`ls`,那么ls的输出将被分配给myvar。

你可以同样使用myvar=$(ls),有些人认为它更现代。

\的情况略有不同。反斜杠允许逃避下一个字符的含义。当你"结束"该行通常是命令被执行,但不是在行结尾被转义时。在编写shell脚本时,这可以派上用场,并且您希望在多行上传播长命令。

答案 1 :(得分:2)

此提示符为PS2(正如您的标准shell提示符由变量PS1定义)。来自the POSIX standard

  

PS2 - 每次用户在交互式shell中完成命令行之前输入<newline>时,此变量的值应进行参数扩展并写入标准错误。默认值为"> "。此量的POSIX.1-2008仅为支持“用户可移植性实用程序”选项的系统指定变量的影响。

因此,正在打印意味着您已在交互式shell中输入了不完整的命令行。如果您没有完成其他类型的引用,或者没有结束if的{​​{1}}语句,您就会有同样的事情。

答案 2 :(得分:0)

由于newline(按Enter键)没有关闭它,所以只希望你继续上一个命令。