永发信息网

为什么Exit可以让PowerShell强制退出

答案:2  悬赏:40  手机版
解决时间 2021-02-15 08:51
  • 提问者网友:暮烟疏雨之际
  • 2021-02-14 20:03
为什么Exit可以让PowerShell强制退出
最佳答案
  • 五星知识达人网友:玩世
  • 2021-02-14 20:23
偶尔有人可能对exit有点误解,写出下面这样的例子:
function abc
{
'Start'
exit 100
'Done'
}

abc

当你执行上面的脚本,abc函数被调用,然后终止,你只会看到“Start”输出,看不到”Done”,变量$LASTEXITCODE中包含了一个值100,真相果真如此吗?
当你把上面的abc函数在交互式的PowerShell中的控制台中运行时,函数虽然再次终止,但是这一次连同PowerShell控制台也跟着一起倒闭了,为什么?
因为”Exit”是从调用者的作用域来终止,当你运行脚本时,脚本被终止,但是PowerShell还是可以继续运行。可是当你在PowerShell控制台以交互的方式来运行这个函数,你的PowerShell控制台也会被终止,此次终止发生在全局作用域,因为这一次除了控制台,没有更高的作用域了。
为了让上面的结论更加容易理解,我们把前面的示例脚本稍微改动下:
function abc
{
'Start'
exit 100
'Done'
}
'Function starts'
abc
'Function ends'

这一次,你会看的更加真切,”exit”真的没有终止abc这个函数,而是终止了整个脚本,你既看不到”Done”也看不到”Function ends”。
全部回答
  • 1楼网友:孤老序
  • 2021-02-14 20:42
你说呢...
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯