从PowerShell运行Linux命令
我能够在Linux上运行下面的代码来成功地卸载磁盘从PowerShell运行Linux命令,linux,powershell,automation,Linux,Powershell,Automation,我能够在Linux上运行下面的代码来成功地卸载磁盘 alldisks=`/sbin/sfdisk-s | grep-v'total'| awk-F':''{print$1}'` 未安装的_磁盘=“” 对于$alldisks中的磁盘 做 /sbin/blkid-o列表| grep-q“$disk” 如果[$?-ne 0];然后 unmounted_disks=“$unmounted_disks$disk” fi 完成 echo$未安装的磁盘 但我正在使用PowerShell通过工作簿实现自动化。
alldisks=`/sbin/sfdisk-s | grep-v'total'| awk-F':''{print$1}'`
未安装的_磁盘=“”
对于$alldisks中的磁盘
做
/sbin/blkid-o列表| grep-q“$disk”
如果[$?-ne 0];然后
unmounted_disks=“$unmounted_disks$disk”
fi
完成
echo$未安装的磁盘
但我正在使用PowerShell通过工作簿实现自动化。我使用New SSHSession
连接后尝试了以下发送到Linux的方式:
**$script**=('alldisks=`/sbin/sfdisk-s | grep-v'total'| awk-F':''''''{print$1}'`
未安装的_磁盘=“”
echo$未安装的磁盘
对于$alldisks中的磁盘
do/sbin/blkid-o列表| grep-q'$disk''
`n
如果[$?-ne 0]
然后未安装的磁盘=“”$unmounted_disks$disk“”
fi
完成
echo$unmounted_disks')
$output=**调用SSHCommand**-索引$session.SessionId**-命令$script**-超时900-错误操作停止
我得到以下错误:
bash:-c:第8行:意外标记'fi'附近的语法错误bash:-c:第8行:'fi' 在脚本中使用以下选项:
$script = @'
alldisks=`/sbin/sfdisk -s | grep -v 'total' | awk -F ':' '{print $1}'`
unmounted_disks=""
echo $unmounted_disks
for disk in $alldisks
do
/sbin/blkid -o list | grep -q "$disk"
if [ $? -ne 0 ]; then
unmounted_disks="$unmounted_disks $disk"
fi
done
echo $unmounted_disks
'@
首先获得一个更简单的命令,然后开始添加花哨的东西。我还建议加入20世纪90年代,使用“现代”形式的命令替换(即
var=$(myCmd)
)而不是反勾号。最后,假设正在作为一行处理,并用分隔所有cmd序列代码>字符。祝你好运,谢了,谢了。我试过了,但没用。如果您能准确地指出如果您编写了命令,该命令会是什么样子,将不胜感激。。我是说整个$script变量什么“工作簿”?PowerShell代码中的星号代表什么?