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

PowerCLI V11运行Bash脚本报错,如何正确整合指定磁盘查询命令

问题解决方法

报错原因

你遇到的报错核心是PowerShell字符串转义规则与Bash命令的特殊符号冲突:

  • 你用双引号定义$command变量时,内部awk语句的" "、$5、$1都会被PowerShell提前解析,不会原样传给目标虚拟机的Bash环境
  • 多层引号嵌套也会导致命令被意外截断,无法正常执行

最优解决方案

使用PowerShell单引号包裹的这里字符串(here-string)定义Bash命令,无需任何额外转义,所有内容会原样传递:

$vm= "server"
$adminGuest="root"
$adminGuestPwd="pass"
# 单引号边界字符串 @' ... '@ 内部所有特殊字符原样保留
$command = @'
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }'
'@
Invoke-VMScript -vm $vm -ScriptText $command -GuestUser $adminGuest -GuestPassword $adminGuestPwd -ScriptType Bash 

备用方案(不使用here-string)

如果需要用普通双引号定义命令,需要用PowerShell转义符反引号()转义所有内部双引号和$`符号:

$command = "df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print `$5 `" `" `$1 }'"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:00:04