Inquérito do shell script hostname

0

Eu não posso ficar abaixo do script.

GUBUN = $ {HOSTNAME: $ {# HOSTNAME} -1: 1}

Eu só sei esse nome de host de uma chamada, mas não consigo entender totalmente.

O que eu sei $ {# HOSTNAME} -1: Chame a última letra do nome do host

Se a última letra do hostname for 'x', o script é $ {HOSTNAME: x: 1}: não entendi este aqui ...

    
por YB Shin 22.10.2018 / 06:30

2 respostas

0

Em shells recentes ( bash ), você pode até usar

echo ${HOSTNAME: -1}

como explicado em man bash :

${parameter:offset:length} Substring Expansion.

. . .

If offset evaluates to a number less than zero, the value is used as an offset in characters from the end of the value of parameter.

If length is omitted, ... extending to the end of the value.

(verifique se o espaço está lá para evitar a interpretação como um "valor padrão")

    
por 22.10.2018 / 12:48
1

$ {HOSTNAME} é uma variável que contém o nome do host do seu sistema.

$ {# HOSTNAME} é o tamanho do parâmetro (caracteres) do nome do host.

Então, usando o valor de $ HOSTNAME, inicie 1 caractere do final (offset) e obtenha o primeiro caractere (s).

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

source: man bash e procura pela Expansão de Parâmetros.

    
por 22.10.2018 / 07:52