@chaos Por favor, não edite a pergunta para corresponder melhor à sua resposta ;-).
Pilot6
@ Pilot6 Não mudei o significado. Ou entendo algo errado? Tornei mais fácil encontrar (título) e mais legível. BTW : também tem outros significados, é um comando interno do bash, por exemplo. Eu queria diferir disso, porque a pergunta obviamente não é sobre isso. O que o usuário quer dizer é o :operador dentro de um nome de variável. Sinto muito, não quero incomodar ninguém, mas sua reversão não faz sentido e deve ser revertida, mas não quero uma guerra de edição aqui. Além disso, é específico para bash e scripts. Por que remover essas tags?
6135 caos
Você removeu TEMPe VARvariáveis e mudou a questão da maneira que outras respostas perdeu o significado.
Pilot6
@ Pilot6 Na minha resposta, não me refiro a uma VARvariável. Mas, no entanto, você pode mudar isso de volta. Eu queria tornar a pergunta mais geral, menos específica. Nunca foi para sabotar outras respostas.
6135 caos
2
@SnakeDoc não, está no tópico certo #
muru
Respostas:
15
Isso é expansão variável e funciona assim (observe que isso é único bashe kshespecífico e não funcionará em um shell POSIX):
:
também tem outros significados, é um comando interno do bash, por exemplo. Eu queria diferir disso, porque a pergunta obviamente não é sobre isso. O que o usuário quer dizer é o:
operador dentro de um nome de variável. Sinto muito, não quero incomodar ninguém, mas sua reversão não faz sentido e deve ser revertida, mas não quero uma guerra de edição aqui. Além disso, é específico para bash e scripts. Por que remover essas tags?TEMP
eVAR
variáveis e mudou a questão da maneira que outras respostas perdeu o significado.VAR
variável. Mas, no entanto, você pode mudar isso de volta. Eu queria tornar a pergunta mais geral, menos específica. Nunca foi para sabotar outras respostas.Respostas:
Isso é expansão variável e funciona assim (observe que isso é único
bash
eksh
específico e não funcionará em um shell POSIX):${var:pos}
significa que a variávelvar
é expandida, iniciando no deslocamentopos
.${var:pos:len}
significa que a variávelvar
é expandida, começando do deslocamentopos
com o comprimentolen
.fonte
zsh
tambémzsh
=) Eu fiz um script de dietazsh
e perdi 10kg em 1 semana.zsh
com certeza faz você mais burro em caminhos de digitação quando você não estiver usando-o :)no bash, elimina os 3 primeiros caracteres de uma variável (string):
consulte 'extração de substring' aqui: http://www.tldp.org/LDP/abs/html/string-manipulation.html .
fonte
Este operador corta os 3 primeiros caracteres da variável
TEMP
e atribui o restante à variávelVAR
.fonte