You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中从WSL2运行Bash脚本并传参及捕获输出?

在PowerShell中通过WSL给bash脚本传参并捕获输出

实现方法

要完成传参和捕获输出这两个需求,只需在原有代码基础上做两处调整:

1. 传递4个参数

把要传递的参数整理成数组,转义其中的特殊字符(比如双引号)后,和脚本内容一起拼接传递给bash -c。

2. 捕获HEX颜色输出

直接将wsl命令的执行结果赋值给变量,PowerShell会自动捕获脚本的标准输出内容。

修改后的代码示例

# 读取目标脚本内容为单行字符串
$DcolorsScript = Get-Content -Raw ./shellscripts/dcolors.sh

# 定义要传递的4个参数(替换成你实际需要的参数值)
$scriptParams = @("param1", "param with spaces", "param3", "param#4")

# 转义脚本和参数中的双引号,适配bash语法
$escapedScript = $DcolorsScript -replace '"', '\"'
$escapedParams = $scriptParams -replace '"', '\"'

# 执行脚本并捕获输出的HEX颜色列表
$hexColors = wsl bash -c "$escapedScript $($escapedParams -join ' ')"

# 输出捕获到的结果
$hexColors

注意事项

  • 如果参数和脚本内容中都不包含双引号或空格等特殊字符,可以省略转义步骤,直接拼接参数即可。
  • $hexColors变量存储了脚本输出的所有内容,你可以通过$hexColors -split "n"`将其拆分成单行的HEX代码列表,方便后续处理。

内容的提问来源于stack exchange,提问作者fmotion1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:44:04