In bash
:
$ type :
: is a shell builtin
$ type true
true is a shell builtin
Sieht so aus, als wären sie gleich, aber sie geben nicht die gleiche Systemspur:
$ strace :
strace: :: command not found
$ strace true
execve("/bin/true", ["true"], [/* 82 vars */]) = 0
[snip]
exit_group(0) = ?
Ich habe versucht, strace bash -c : 2>:.txt
und zu strace bash -c true 2>true.txt
unterscheiden, konnte aber keine Unterschiede zwischen ihnen feststellen, mit Ausnahme der Speicherorte.
In dash
:
$ type :
: is a special shell builtin
$ type true
true is a shell builtin
OK, also sind sie nicht gleich. help :
und help true
sind nicht sehr nützlich, und sie geben dasselbe in bash
und zurück dash
. Gibt es überhaupt einen praktischen Unterschied zwischen ihnen, außer dass :
drei Bytes gespart werden und Skripte weniger lesbar sind?