Я читав наступне в Посібнику користувача по Z-оболонці :
Синонім 'true' є ':'; часто використовується в цій формі для аргументів, які мають побічні ефекти, але які не слід використовувати - щось подібне
: ${param:=value}
що є загальною ідіомою у всіх похідних оболонки Борна. У розширенні параметра
$param
задається значення значення, якщо воно було порожнім раніше, а залишене в спокої в іншому випадку. Оскільки це було єдиною причиною розширення параметра, ви:
ігноруєте аргумент. Власне, оболонка блискуче будує командний рядок - двокрапка, за якою буде значення$param
, незалежно від того, відбулося призначення чи ні - тоді виконує команду; просто так буває, що ':' не помічає аргументів, які йому було надано.
але я цього не розумію. Я розумію, це :
означає true
, але в виразі є дві колонки. Що стосується другорядного питання, чому ця ідіома використовується настільки у всіх похідних оболонок Борна? Якій цілі він служить?
Примітка: Мене цікавить, що робить ця ідіома і в bash, і в zsh .
Спасибі
zsh
чиbash
?