PowerShell如何实现Shell <<<功能自动传入minikube交互参数
PowerShell 向交互式命令传入预设值的实现方式
PowerShell 没有 Bash 中<<<这类 here-string 运算符,要实现给阻塞等待用户输入的minikube addons configure ingress命令自动传入配置值,有两种常用写法:
管道直接传值(最简洁,优先使用)
直接把待传入的字符串通过管道传给目标命令,PowerShell 会自动将字符串内容写入外部程序的标准输入流,效果和手动敲入内容完全一致,命令不会阻塞等待交互:"kube-system/mkcert" | minikube addons configure ingress如果命令需要多步输入多个值,只需用 PowerShell 换行符
`n分隔不同输入值即可,例如需要依次输入两个配置项的写法为:"第一个输入值`n第二个输入值" | 目标交互命令临时文件重定向输入(兼容性更好)
如果遇到部分旧版本外部程序无法正确读取管道输入的情况,可以先把待输入内容写入临时文件,再通过进程启动参数重定向标准输入,适配性更强:# 定义要传入的配置值 $targetInput = "kube-system/mkcert" # 创建临时文件存储输入内容 $tempInputFile = New-TemporaryFile $targetInput | Out-File -FilePath $tempInputFile.FullName -Encoding utf8 # 启动minikube命令并重定向标准输入 Start-Process minikube -ArgumentList "addons","configure","ingress" -Wait -NoNewWindow -RedirectStandardInput $tempInputFile.FullName # 清理临时文件 Remove-Item $tempInputFile.FullName
传入的字符串需要符合命令提示的
namespace/secret格式要求,你需要传入的kube-system/mkcert满足格式要求,直接传入即可完成自动配置。
内容的提问来源于stack exchange,提问作者wolfdebs
相关产品推荐
相关产品推荐

