W bash
:
$ type :
: is a shell builtin
$ type true
true is a shell builtin
Wygląda na to, że są takie same, ale nie dają tego samego śladu systemowego:
$ strace :
strace: :: command not found
$ strace true
execve("/bin/true", ["true"], [/* 82 vars */]) = 0
[snip]
exit_group(0) = ?
Próbowałem diffing strace bash -c : 2>:.txt
a strace bash -c true 2>true.txt
, ale nie można znaleźć żadnych różnic między nimi, z wyjątkiem miejsc pamięci.
W dash
:
$ type :
: is a special shell builtin
$ type true
true is a shell builtin
OK, więc nie są takie same. help :
i help true
nie są bardzo przydatne, i zwracają to samo w bash
i dash
. Czy jest jakaś praktyczna różnica między nimi, z wyjątkiem tego, że :
oszczędza trzy bajty i sprawia, że skrypty są mniej czytelne?