我能够在 Linux 上运行以下代码以成功获取卸载的磁盘。
alldisks=`/sbin/sfdisk -s | grep -v 'total' | awk -F':' '{print $1}'`
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
但我正在使用 PowerShell 通过工作簿自动执行此操作。使用 New-SSHSession
连接后,我尝试了以下发送到 Linux 的方式:
**$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''
`n
if [ $? -ne 0 ]
then unmounted_disks=''$unmounted_disks $disk''
fi
done
echo $unmounted_disks')
$output = **Invoke-SSHCommand** -Index $session.SessionId **-Command $script** -TimeOut 900 -ErrorAction Stop
我得到以下错误:
bash: -c: line 8: syntax error near unexpected token `fi'
bash: -c: line 8: ` fi '
最佳答案
使用 here-string对于你的脚本:
$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
'@
关于linux - 从 PowerShell 运行 Linux 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46109021/