linux - 从 PowerShell 运行 Linux 命令

标签 linux powershell automation

我能够在 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/

相关文章:

python - 使用 Python 在 Firefox 中自动下载文件

testing - Ranorex 8.3.0,当尝试创建新记录时,它不显示选择网络、桌面或移动应用程序的选项

ruby-on-rails - 每当 cron 中的 gem 命令不起作用时

Python 版本和 Tcl/Tk 兼容性

python - 使用python在linux中的日期范围内获取目录中修改的文件

powershell - 将Invoke-WmiMethod命令转换为Invoke-CimMethod命令

c# - 格式化托管 PowerShell 的输出

C# PowerShell 远程处理问题 : method or operation not implemented

linux - 一条命令删除目录及其子目录

c - 将 ncurses 窗口保持在前台