[英]what is var=${var:-word} bash equivalent in powershell
[英]What is the >> mode in bash or powershell?
如果在bash或powershell中的命令中输入了一个` ,它将进入提示符下显示>>
的模式。 此模式是什么?它的作用是什么?
我键入cd `
而不是cd ~
并进入模式。 似乎影响它的唯一输入是ctrl + c来终止命令。 关于搜索bash手册页或参考手册,我什么也找不到。
在bash / sh中, `字符启动Command Substitution 。
当您没有完成命令(带有另一个`字符)时,shell会意识到您的命令未完成,并尝试提示您更多命令(使用$PS2
的值)。
完成命令,然后按Enter键,整个过程就会运行。
未完成的字符串( `和“ )也是如此。
在powershell中,我相信`是行的延续。 (类似于shell脚本等中的\\ 。)
根据要求,我将评论移至答案,以解决问题的PowerShell方面。
在PowerShell中,反引号`是转义字符。 就OP的问题而言,并引起>>
提示,反引号`逃避了新行,并强制命令解释器将当前命令继续到下一行。 因此,当行中的最后一个字符是`时,它的作用就像Etan建议的那样作为行继续符。 当他在反引号之后立即按Enter时,它给出>>
期望他完成他正在处理的当前命令。
如果不是最后一个字符,则它会转义其后面的所有字符,从而使人们能够转义引号内的引号,或在双引号内声明状态变量名称而无需字符串内插。
如其他答案所述, >>
提示符是主机等待您完成某些操作的主机。 它可以是命令,字符串,脚本块或循环等。
(感谢Etan间接向我展示`事情是如何完成的,在这里回答问题真是太棒了)
编辑:B ,基思·希尔(Keith Hill)走进来,帮助我将脚伸进嘴里。 我坚持我的回答,因为我认为它在功能上是正确的(如果在技术上不够彻底),但是显然,它在文档中被称为line continuation
。
反引号( `
)开始引用上下文,并将继续阅读直到以另一个匹配的`
结尾。 当当前行的引号未完成时(例如,按Enter键时),将进入/继续此模式。
与'
和"
引用上下文不同,它还希望内部( '
和"
)引号在终止“ >>”上下文之前正确终止。 (实际上,进入此模式并不重要,只是shell表示在交互运行时表达式未正确终止。)
考虑以下终止输入(它运行时不同步,捕获输出,然后显示回显):
echo "Hello " `
uname -m` ", you are awesome!"
这个非终止的(因为内部的"
未关闭”)输入:
echo `
echo "Hello world
`
并使用标准(非替代引号):
echo "Hello
word `"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.