En bash
:
$ type :
: is a shell builtin
$ type true
true is a shell builtin
Parece que son iguales, pero no dan la misma traza del sistema:
$ strace :
strace: :: command not found
$ strace true
execve("/bin/true", ["true"], [/* 82 vars */]) = 0
[snip]
exit_group(0) = ?
Intenté diferir strace bash -c : 2>:.txt
y strace bash -c true 2>true.txt
, pero no pude encontrar ninguna diferencia entre ellos, excepto por las ubicaciones de memoria.
En dash
:
$ type :
: is a special shell builtin
$ type true
true is a shell builtin
OK, entonces no son lo mismo. help :
y help true
no son muy útiles, y devuelven lo mismo en bash
y dash
. ¿Hay alguna diferencia práctica entre ellos, excepto que :
ahorra tres bytes y hace que los scripts sean menos legibles?