Em bash
:
$ type :
: is a shell builtin
$ type true
true is a shell builtin
Parece que eles são iguais, mas não dão o mesmo rastreio do sistema:
$ strace :
strace: :: command not found
$ strace true
execve("/bin/true", ["true"], [/* 82 vars */]) = 0
[snip]
exit_group(0) = ?
Tentei diferenciar strace bash -c : 2>:.txt
e strace bash -c true 2>true.txt
, mas não consegui encontrar nenhuma diferença entre eles, exceto os locais de memória.
Em dash
:
$ type :
: is a special shell builtin
$ type true
true is a shell builtin
OK, então eles não são os mesmos. help :
e help true
não são muito úteis, e retornam o mesmo em bash
e dash
. Existe alguma diferença prática entre eles, exceto que :
economiza três bytes e torna os scripts menos legíveis?