Что такое "выход" в PowerShell?
Вы можете выйти из PowerShell, набрав exit
. Все идет нормально. Но что это такое?
PS Home:\> gcm exit
Get-Command : The term 'exit' is not recognized as the name of a cmdlet, function, script file, or operable program. Ch
eck the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:4
+ gcm <<<< exit
+ CategoryInfo : ObjectNotFound: (exit:String) [Get-Command], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Commands.GetCommandCommand
Таким образом, это не является командлетом, функцией, script или программой. Это оставляет вопрос, что именно это.
К сожалению, это также означает, что нельзя создавать псевдонимы до exit
:
PS Home:\> New-Alias ^D exit
PS Home:\> ^D
Cannot resolve alias '♦' because it refers to term 'exit', which is not recognized as a cmdlet, function, operable prog
ram, or script file. Verify the term and try again.
At line:1 char:2
+ ♦ <<<<
+ CategoryInfo : ObjectNotFound: (♦:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : AliasNotResolvedException
Есть ли еще такие команды, которые не являются командами?
ETA: Только для справки: я знаю, что могу просто включить его в функцию. Мой профиль имеет строки
# exit with Ctrl+D
iex "function $([char]4) { exit }"
в них. Мой вопрос состоял в том, чтобы знать, что именно эта команда.
Ответы
Ответ 1
Это зарезервированное ключевое слово (например, return, filter, function, break).
Ссылка
Кроме того, согласно разделу 7.6.4 Брюса Пайетта Powershell в действии:
Но что происходит, когда вы хотите, чтобы script вышел из функции, определенной в этом script? ... Чтобы сделать это проще, Powershell имеет ключевое слово exit.
Конечно, как указывали другие, не сложно делать то, что вы хотите, обернув выход в функцию:
PS C:\> function ex{exit}
PS C:\> new-alias ^D ex