2015-05-21 36 views
0

如何從純Bash中的主機名剝離域?如何從bash中的主機名剝離域

實施例:

hostname = myserver.site.mydomain.com 
output=${hostname#*.*} 

會給

site.mydomain.com 

hostname = myserver.site.mydomain.com 
output=${hostname%*.*} 

會給

myserver.site.mydomain 

我只想要「myserver」

任何想法?

我希望用純猛砸,不是用sed,awk的,剪切等

+1

splats太多。提示:如果您從右側剝離(%),則星號在右側,從左側(#)剝離,星號在左側。您只能使用此特定機制從左邊*或右邊剝離。 – cdarke

回答

2

什麼:

hostname=myserver.site.mydomain.com 
output=${hostname%%.*} 

%%應該從尾部刪除最長匹配。

0

喜歡的東西

Parameter expansions將是有用的

$ hostname=myserver.site.mydomain.com 
$ echo ${hostname/.*/} 
myserver 

${parameter/pattern/string}

模式擴展爲產生一個模式,就像文件名擴展一樣。參數被展開,模式 與其值的最長匹配被替換爲字符串。