>>>>> "AC" == Artem Chuprina <r...@ran.pp.ru> writes: >>>>> Fedor Zuev -> debian-russian@lists.debian.org:
[…] FZ> Видел я этот ваш tcl. Не впечатлился честно говоря. Заумь FZ> какая-то. Возможно, под какой-то специфический стиль мышления он FZ> заточен идеально. Но точно не под мой. Все-таки простые вещи FZ> должны делаться просто. AC> Там как раз простые вещи делаются просто. На порядок примерно AC> проще, чем в sh. Чем он, в частности, и прекрасен - порог AC> вхождения практически отсутствует. AC> И все описание синтаксиса вместе с семантикой на две страницы. Без AC> никаких странных исключений. Описание грамматики такого /человекочитаемого/ языка, как эсперанто, имеет сопоставимый объем, — bonvolu paroli la lingvo internacia. AC> Ну да, чтобы вывести его из трех примеров скриптов, нужно быть AC> математиком. Но выводить не обязательно, достаточно прочесть man AC> tcl. Нельзя ли привести примеры программ на Tcl, для написания которых достаточно знания языка на уровне man tcl? AC> Но на любителей sh tcl, действительно, впечатления не производит. AC> Не доставляет незабываемых ощущений при попытках выяснить, почему AC> переменная внутри while после пайпа как бы не работает, и как AC> сделать, чтобы все-таки работала. В случае с конвейером необходимо четко усвоить ровно один принцип: как только мы задействуем |, — у нас уже не одна программа, но две. Даже если обе зовутся example.sh. Все прочее — тривиальные следствия. Включая и возникновения вопроса о том, которая из программ («слева или справа от |») являет собой дочерний процесс, а которая — основной. Bash, к слову, допускает оба варианта; подобно: parent | while IFS= read -r -- line ; do : child ; done while IFS= read -r -- line ; do : parent ; done < <(child) AC> А с учетом багов его реализации в Solaris? Разве Solaris sh все еще где-то изучается? (В смысле, — кроме курса «компьютерной археологии» и ему подобных.) […] -- FSF associate member #7257 http://boycottsystemd.org/ … 3013 B6A0 230E 334A