Przeczytałem następujące w Instrukcji obsługi Z-Shell :
Synonimem „true” jest „:”; jest często używany w tej formie, aby podać argumenty, które mają skutki uboczne, ale których nie należy używać - coś w rodzaju
: ${param:=value}
który jest wspólnym idiomem wszystkich pochodnych powłoki Bourne'a. W rozszerzeniu parametru
$param
jest podana wartość wartości, jeśli wcześniej była pusta, a w przeciwnym razie pozostawiona sama. Ponieważ był to jedyny powód rozszerzenia parametru, możesz:
zignorować argument. W rzeczywistości powłoka beztrosko buduje wiersz poleceń - dwukropek, a po nim dowolną wartość$param
, niezależnie od tego, czy nastąpiło przypisanie, a następnie wykonuje polecenie; tak się składa, że „:” nie przyjmuje podanych argumentów.
ale nie rozumiem tego. Rozumiem :
to true
, ale w wyrażeniu są dwa dwukropki. Jako drobne pytanie, dlaczego ten idiom jest tak często stosowany we wszystkich pochodnych powłoki Bourne'a? Do czego to służy?
Uwaga: Interesuje mnie to, co robi ten idiom zarówno w bash, jak i w zsh .
Dzięki
zsh
czybash
?