Bash 获取字符串值

标签 bash

我必须从其配置文件中获取网络设备的主机名。该文件如下所示:

...
hostname=T14Z18
ipaddress=192.168.0.1
...

如何做到这一点?我正在通过 ssh 进入机器。

最佳答案

像这样使用 grepcut:

$ grep '^hostname=' configfile  | cut -d= -f2
T14Z18

您还可以将上述内容与 Bash 中的 ssh 命令结合使用:

$ ssh "$(grep '^hostname=' configfile | cut -d= -f2)"

$() 之间的所有内容都将替换为括号内命令的输出,因此它与键入 ssh T14Z18 相同 手动。 此功能称为 command substitutionBash 中。

另请注意,您可能使用的 OpenSSH 有其自己的配置 存储在 ~/.ssh/config 中,您可以使用它来创建别名。为了 例如,以下条目创建一个名为 rpi 的别名:

Host rpi
User pi
Hostname 192.168.1.161

您现在只需执行 ssh rpi 即可找到用户和主机名 由 OpenSSH 客户端自动执行。如果您的网络中有 DNS 服务器,您当然可以使用主机名,例如示例中的 T14Z18,而不是 IP 地址。

关于Bash 获取字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49221724/

相关文章:

gitattributes - 如何识别没有扩展名的 bash 脚本文件

arrays - Bash,调用值时使用变量作为关联数组的名称

linux - 记录终端的命令不适用于 bash

bash - 使用参数扩展设置默认变量 vs if/else test -z

linux - 在 bash 中循环遍历不相关的数字范围时使用文件中的行

linux - 调用 shell 脚本时,bash 中的 exec 命令不起作用

node.js - Node CLI 工具评估字符串

bash - Makefile 中的函数

bash - 为什么 wget -O- 输出到标准输出?

linux - 大写的 Grep 语法