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
相关产品推荐
相关产品推荐

