我无法理解下面的脚本。
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,则...延伸到值的末尾。
(确保有空格以避免解释为“默认值”)