本文介绍了kubectl EXEC命令在PowerShell ISE中不起作用(从PowerShell起作用)-是否有原因或解决方法使其起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近开始使用Kubernetes和Docker,对它们的工作原理还很陌生。我已经创建了一个PS1脚本来运行构建映像和在Kubernetes上执行映像所需的所有步骤。

我看到的是所有步骤在ISE上都工作得很好(除了这个:"kubectl exec-it test-runner pwsh")。仅就这一步而言,我就必须在另一个PowerShell窗口上运行它。

当我在ISE中运行此步骤时,脚本继续运行,不会出现任何错误或停止。

有没有人知道Kubernetes在ISE上工作是否有限制,或者是否有解决办法使其正常工作?

使用ISE非常快捷,并且为我节省了大量时间,因此,当我每次都必须在单独的PowerShell窗口中复制、粘贴和输入时,这真的很重要。

提前感谢您的帮助!

附注:我查看了其他建议的类似问题/答案,似乎没有一个与Kubernetes没有在ISE工作有关。因此就有了这个问题。

命令:

kubectl exec -it test-runner pwsh

预期(从PowerShell控制台运行时为实际):

----------------------
PS C:windowssystem32> kubectl exec -it test-runner pwsh
PowerShell 6.2.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /test>
-----------------------------
Actual (when running from PowerShell ISE):

PS C:SourceCodeTLMApollo>  kubectl exec -it test-runner pwsh
PowerShell 6.2.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

(with a blinking cursor and script running without breaking and changing to the new path)...
-----------------------------------------------

推荐答案

PowerShellISE不支持交互式控制台应用程序,这意味着您无法从它启动其他shell

ISE试图通过拒绝启动众所周知的shell来预测该问题。例如,尝试启动cmd.exe失败,并显示以下错误消息:

Cannot start "cmd". Interactive console applications are not supported.
To run the application, use the Start-Process cmdlet or use
"Start PowerShell.exe" from the File menu.

注意:

但是,ISE不可能检测到给定命令(最终)调用交互式控制台应用程序的所有情况;如果检测不到,则会尝试调用该命令,从而导致模糊的错误消息或挂起(就像您的情况一样)。

如错误消息所示,您必须在ISE外部的常规控制台窗口中运行交互式控制台应用程序。

从ISE您可以使用Start-Process在新的常规控制台窗口中启动程序;在手头的案例中:

Start-Process kubectl 'exec -it test-runner pwsh'

或者,首先在ISE外部运行PowerShell会话,例如在常规控制台窗口、Windows终端或Visual Studio Code的集成终端中。

这篇关于kubectl EXEC命令在PowerShell ISE中不起作用(从PowerShell起作用)-是否有原因或解决方法使其起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-16 13:49