如何在 bash 中从主机名中删除域名

Sha*_*lan 3 bash

如何在纯 Bash 中从主机名中去除域名?

例子:

hostname = myserver.site.mydomain.com
output=${hostname#*.*}
Run Code Online (Sandbox Code Playgroud)

会给

site.mydomain.com
Run Code Online (Sandbox Code Playgroud)

尽管

hostname = myserver.site.mydomain.com
output=${hostname%*.*}
Run Code Online (Sandbox Code Playgroud)

会给

myserver.site.mydomain
Run Code Online (Sandbox Code Playgroud)

我只想要“我的服务器”

有任何想法吗?

我希望使用纯 Bash,而不是 sed、awk、cut 等。

小智 7

关于什么:

hostname=myserver.site.mydomain.com
output=${hostname%%.*}
Run Code Online (Sandbox Code Playgroud)

%% 应从尾部删除最长的匹配项。