Вчера открыл для себя очень удобную возможность в shell-скриптах:
оказывается если в цикле for не задать список аргументов, то в качестве оного используется переменная $@ - список аргументов командной строки.
Вот пример:
for i
do
echo $i;
done
Плюсы: короче запись
ОтветитьУдалитьМинусы: 1) снижается читабельность, 2) использование поведения по умолчанию всегда определённый риск
А в чем заключается риск при использовании поведения по умолчанию?
ОтветитьУдалитьа просто for i in "$@"; do ...; done ?
ОтветитьУдалитьСемантика та же, но значительно понятнее, чем сокращённая запись.
Ещё можно так, иногда удобнее:
ОтветитьУдалитьwhile [ $# -gt 0 ]; do
echo $1 ; shift ;
done
прошу извинения за резкость ... напомнило старую хохму: "попробовал женщину ... жалкое подобие левой руки" ...
ОтветитьУдалить