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

SSH命令执行时出现意外grep用法提示的问题求助

SSH命令执行时出现意外grep用法提示的问题求助

各位好,我最近写了一个Bash脚本,用来通过SSH批量在远程服务器上执行命令,脚本里用grep提取服务器列表,但运行时总是弹出意外的grep用法提示,根本拿不到预期的命令执行输出,这让我有点头疼。

具体问题表现是:每次尝试SSH连接远程服务器时,都会反复出现如下提示:

Usage: grep [OPTION]... PATTERNS [FILE]...

下面是我的完整脚本代码:

#!/bin/bash

if [[ $1 == "" ]]; then
  serverNames=$(grep -v "localhost" /etc/hosts | awk '/^[^#]/{ print $2 }')

  IFS=$'\n' read -rd '' -a servers <<< "$serverNames"
  read -p "type. : " cmd

  for server in "${servers[@]}"; do
      echo "Connecting to $server..."

      ssh -o StrictHostKeyChecking=no "$server" "$cmd"

      if [ $? -eq 0 ]; then
          echo "Command executed successfully on $server"
      else
          echo "Failed to execute command on $server"
      fi
  done

else
  servers=("$@")

  read -p "type. : " cmd

  for server in "${servers[@]}"; do
      echo "Connecting to $server..."

      ssh -o StrictHostKeyChecking=no "$server" "$cmd"

      if [ $? -eq 0 ]; then
          echo "Command executed successfully on $server"
      else
          echo "Failed to execute command on $server"
      fi
  done
fi

我检查过脚本里的grep语句grep -v "localhost" /etc/hosts,语法看起来没毛病啊,为什么会反复弹出grep的用法提示呢?有没有大佬能帮我排查下问题出在哪?

备注:内容来源于stack exchange,提问作者KaaaaaaaaaK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:24:33