Isso provavelmente está no manual do zsh, desculpe por ser preguiçoso e perguntar aqui. Parece haver algo especial sobre :t em zsh, como testemunhado pelo exemplo a seguir.
% x=foo
% echo $x:bar
foo:bar
% echo $x:toad
foooad
O comportamento com $x:bar
é o esperado, mas :t
parece retroceder. Alguém pode me direcionar para a seção apropriada no manual que discute isso? Obrigado!
:t
é um modificador(
:t
, do csh estava lá desde o início em 1990, enquanto a:t2
variante foi adicionada em 2019 , disponível pela primeira vez na versão 5.8).Isso é um modificador –
variable:modifier
permite modificar variáveis quando elas são expandidas. No seu caso, para tornar isso mais visível:remove todos os principais componentes de nome de caminho em
x
. (tente configurarx=/usr/bin/foo
!)Sinceramente, tento me treinar para nunca usar "raw"
$variable
em strings – o risco de complicações é muito alto (x=foo; xy=bar
,echo $xyz
…); ir paraecho ${x}:toad
apaga qualquer risco de seu shell ser mais inteligente do que você deseja aqui.