查询主机名shell脚本

查询主机名shell脚本

我无法理解下面的脚本。

GUBUN=${主机名:${#HOSTNAME}-1:1}

我只知道这个调用主机名,但我无法完全理解。

我所知道的 ${#HOSTNAME}-1 :调用主机名的最后一个字母

如果最后一个主机名的字母是 'x' 脚本是 ${HOSTNAME:x:1} :我不明白这个......

答案1

${HOSTNAME} 是包含您的系统主机名的变量。

${#HOSTNAME} 是主机名的参数长度(字符)。

因此,使用 $HOSTNAME 的值,从末尾(偏移量)开始 1 个字符并获取前 1 个字符。

kevlinux@ubuntu:~$ echo $HOSTNAME
ubuntu 
kevlinux@ubuntu:~$ echo ${HOSTNAME: ${#HOSTNAME}-1: 1}
u

来源: man bash 并搜索参数扩展。

答案2

在最近的 shell ( bash) 中,您甚至可以使用

echo ${HOSTNAME: -1}

man bash

${parameter:offset:length} 子字符串扩展。

。 。 。

如果 offset 计算结果为小于零的数字,则该值用作距参数值末尾的字符偏移量。

如果省略 length,则...延伸到值的末尾。

(确保有空格以避免解释为“默认值”)

相关内容