PowerShell的Exit与Return

发布时间:2023-03-06 22:25:43   来源:文档文库   
字号:
PowerShellExit关键字与Return关键字,以及自动变量$?$LastExitCode
——与UnixShell的比较

最近因为工作关系,第一次接触PowerShell因为之前接触的都是UnixShell所以在刚开始PowerShell的时候,把Unix的想法与概念带到PowerShell中,到最后才发现二者之间很多东西都是不一样的。
关于这次的工作内容,主要任务是把原来在Unix上写的ShellPowerShell再实现一下。需求与接口都要求与原来的一样(实际上谁也不想改这些东西)
一、Exit关键字语法:Exit[状态值]
这个不用想都知道是退出命令,中止当前的执行。但是这里面却是一大堆的陷阱。
UnixShell中,只要Exit被执行,不管Shell之间用source命令有多少层读取关系,都会中止所以执行,并且设置退出状态值。状态值在执行结束之后用$?来确认。一切都很清楚。

但是在PowerShell中却变得比较复杂。先看一下PowerShell2.0中关于Exit的说明,少得可怜。另外,在《WindowPowerShell应用手册》里关于Exit也没有特别的说明。
主题:about_Language_Keywords
Exit
使WindowsPowerShell退出脚本或WindowsPowerShell实例。
语法:
Exit

PowerShellExit的命令,分成下面三种情况。1、在脚本中直接执行。
2、在用source读取的脚本中执行。3、在函数中执行。
分别用例子来说明。1、在脚本中直接执行。

这种情况下和UnixShell是一样的,都是中止脚本的执行。
不同的是在PowerShell中自动变量$?是一个布尔值,因为退出代码不是0而是50,所以执行结束是失败(False;自动变量$LastExitCode里保存的则是退出代码。
2、在用source读取的脚本中执行。

testMain.ps1文件读取上一个例子中的脚本。可以看到即使test1.ps1的执行了Exit命令并中止了执行,但是testMain.ps1却还是继续执行后面的命令。这一点和UnixShell完全不一样。

本文来源:https://www.2haoxitong.net/k/doc/2791469ce518964bce847c41.html

《PowerShell的Exit与Return.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式