Тема достойна толксов, а не девелопмента, но всё-таки запощу сюда.
Есть несколько функций, которые очень помогали бы мне при написании shell-скриптов.
- Например, одна из них: singlestepping. В консоль выводится строчка, которая будет выполнена (с уже подставленными значениями переменных). Каждая следующая строчка выполняется только по нажатию клавиши. Можно прервать скрипт на каком-то конкретном месте, где вдруг перестал нравится его вывод или команда, выведенная в консоль.
- Аналог «echo off», но с возможностью выбора stdout/stderr/both. Насколько я помню, в bat-скриптах этот «echo off» для одной строчки достигался дописыванием символа '@' в начало строки. Удобно было бы, нэ?
- Чтобы не плодить ветвления, упростить логирование и сделать приятный вывод в консоль, хотелось бы иметь такую конструкцию:
Это такой однострочный switch, который используется для обработки различных кодов возврата (теоретически, при существовании такой конструкции, можно придумать и другие сферы использования). Пример использования:
command1 && $?:0 command2; $?:1 command3; $?:* command4
ls && $?:0 echo "ok"; $?:1 echo "minor problems"; $?:2 echo "serious trouble"; $?:* echo "unknown error: $?"
Можно написать свою собственную несовместимую оболочку, можно сделать свой парсер такого кода, который будет преобразовывать эти конструкции в читаемый башем скрипт. Каких функций шелла не хватает вам для написания скриптов? Как обходитесь без них? Какие костыли предложите мне для лёгкой реализации вышеописанного?