В bash
:
$ type :
: is a shell builtin
$ type true
true is a shell builtin
Похоже, они одинаковы, но они не дают ту же системную трассировку:
$ strace :
strace: :: command not found
$ strace true
execve("/bin/true", ["true"], [/* 82 vars */]) = 0
[snip]
exit_group(0) = ?
Я попытался различить strace bash -c : 2>:.txt
и strace bash -c true 2>true.txt
, но не смог найти никаких различий между ними, кроме мест памяти.
В dash
:
$ type :
: is a special shell builtin
$ type true
true is a shell builtin
ОК, поэтому они не одинаковы. help :
и help true
не очень полезны, и они возвращают то же самое в bash
и dash
. Есть ли практическая разница между ними, кроме того, что :
экономит три байта и делает сценарии менее читаемыми?