首页 > 解决方案 > 如何从输出中获取每个字符串(主机名)?

问题描述

我正在尝试使用执行 show 命令的 bash 编写脚本,并从显示输出中获取每个主机名(字符串)并对其执行操作(显示命令)。

例如:

root@Router2:~$ show routers

Hostname1

Hostname2

Hostname3

我想获取每个主机名(主机名 1、主机名 2 和主机名 3)并对它们中的每一个执行操作。

这是我设法做的事情:

figlet Status code
u=$(tput smul)
b=$(tput bold)
n=$(tput sgr0)

echo "${b}${u}Enter server's name${n}"
read -e server
echo ""
Routershow$=(show routers)

之后,我想从 $Routershow 输出中获取每个字符串(主机名)。我怎样才能做到这一点?

谢谢

标签: linuxbashscripting

解决方案


我通常使用while read x“x”是变量名的命令:

show routers | while read routerName
do
    echo $routerName
done

推荐阅读