我必须从配置文件中获取网络设备的主机名。该文件看起来像:
...
hostname=T14Z18
ipaddress=192.168.0.1
...
怎么做到这一点?我正在进入机器。
像这样使用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地址。
使用简单的awk
命令:
awk -F'=' '$1 == "hostname"{ print $2; exit }' configfile
grep -oP 'hostname=\K.*' configfile
__
^
|
重启比赛技巧