首页 > 解决方案 > Bash 使用 cut 分隔 IP 和端口

问题描述

我正在尝试从设备列表中将 ip 和端口传递给我的 bash 脚本,但该脚本将其作为多个设备而不是端口读取。因此,在下面的示例中,它尝试远程登录到 4 个设备,因为它将端口作为设备读取。

for device in `cat device-list.txt`;
do
  hostname=$(echo $device | cut -d : -f 1)
  port=$(echo $port | cut -d : -f 2)
  ./script.exp $device $username $password $port ;
done

我正在尝试使用 cut 来获取端口并将其作为变量传递,因此我的 telnet 应该是例如 abc.abc.com 30040 作为一个设备等等。

 # Telnet
spawn telnet $hostname $port

这是我的设备列表

abc.abc.com 30040
abc.abc.com 30041

我已经尝试在这个网站上搜索答案。

标签: bash

解决方案


我看到两个错误(第 4 行和第 5 行)。它应该是

 for device in `cat device-list.txt`;
 do
   hostname=$(echo $device | cut -d : -f 1)
   port=$(echo $device | cut -d : -f 2)
   ./script.exp $hostname $username $password $port ;
 done

推荐阅读