我必须从配置文件中获取网络设备的主机名。该文件看起来像:
...
hostname=T14Z18
ipaddress=192.168.0.1
...
如何做到这一点?我正在进入机器。
答案 0 :(得分:3)
使用简单的 awk
命令:
awk -F'=' '$1 == "hostname"{ print $2; exit }' configfile
答案 1 :(得分:3)
像这样使用grep
和cut
:
$ grep '^hostname=' configfile | cut -d= -f2
T14Z18
您还可以将上述内容与ssh
中的Bash
命令结合使用:
$ ssh "$(grep '^hostname=' configfile | cut -d= -f2)"
$(
和)
之间的所有内容都将被括号内的命令输出所取代,因此它与您手动键入ssh T14Z18
的内容相同。
此功能称为command
substitution
在Bash
。
另请注意,您可能使用的OpenSSH
有自己的配置
存储在~/.ssh/config
中,您可以使用它来创建别名。对于
例如,以下条目创建一个名为rpi
的别名:
Host rpi
User pi
Hostname 192.168.1.161
您现在只需执行ssh rpi
即可找到用户名和主机名
由OpenSSH
客户自动生成。如果您的网络中有DNS
服务器,您当然可以在您的示例中使用主机名,例如T14Z18而不是IP地址。
答案 2 :(得分:2)