Реквизиты svn в личке. Нужные таблицы на странице проекта обновлены.
Хочу сообщить небольшие новости о проекте. Слово Idlerу:
Хочу предупредить, что в начале апреля планируется переезд сайта на другой физический сервер. В связи с этим будет миграция с SVN на Mercurial, ибо на новый сервер subversion я устанавливать не планирую. Чтобы сохранить историю перевода в лицах мне понадобятся EMAILы всех участников перевода. Просьба кидать в личку.
Переход на mercurial для пользователей svn практически прозрачен. Более подробная информация о mercurial тут: http://hgbook.red-bean.com/read/
Точную дату переезда, адрес mercurial-репозитория ,сообщу ближе к делу.
Соответственно, участникам просьба сбросить в мою личку.
Свои замечания пишу курсивом, ошибки, знаки препинания или обсуждаемый текст - полужирным:
Сложные функции и сложности функций Предлагаю оставить, как и у Киселева - "Сложные функции и сложности с функциями"
Как и в «настоящих» языках программирования, в Bash...
...блок кода, котрый..
...помимо этого, она является более переносимой...
Функции запускаются простым упоминанием их имён... Предлагаю "Функции запускаются простым упоминанием их имён в тексте сценария" (как у Киселева)
# Спасибо, К.О.
А не лучше ли оставить S.C.? Кэп пускай отдохнет :)
# Спасибо, Thiemo Kellner, за указание на это. А вот тут надо перевести имя (уже обсуждалось)
# Спасибо, К.О. и Christopher Head См. выше
# Конечно, это *не* желательно.
*нежелательно*
Продолжение следует...
Часть вторая:
Функция обращается к переданным ей аргументам, основываясь...
Функция, Принимающая Параметры
Она различает случаи, когда...
Команда shift обрабатывает аргументы, переданные в функцию
А как насчёт аргументов, переданных в сценарий? Не там запятая
Пример 23.3. Функции и аргументы командной строки, переданные в сценарий
...в shell-сценариях...
Функции обрабатывают свои аргументы как литералы. Запятая вроде не нужна. Цитирую: "В сравнительных конструкциях запятая перед "как" НЕ ставится:
- если предложение имеет значение "в качестве" - Лев Толстой как художник гениален (в качестве художника)"
Наш случай подходит под это правило.
Что произойдёт, если мы поменяем содержимое переменной "hello"?
Разыменовывание параметра, переданного в функцию 2 раза!
Сценарий от Bruce W. Clare. См. выше
...разыменовывание параметра, переданного в функцию 2 раза!
Спасибо Stephane Chazelas См. выше
Продолжение следует...
Часть третья:
Функция возвращает значение, называемое кодом завершения
...и число, отличное от нуля в противном...
...который возвращается в сценарий, вызывающий функцию как «код завершения» этой функции. "Как" здесь употребляется также в смысле "в качестве" (см. выше)
Замечание: сравниваемые числа должны быть меньше, чем 250.
Переделайте данный сценарий в интерактивный
#+ так, чтобы он запрашивал у пользователя ввод двух чисел. Запятая перед "так" не нужна
Перевод Арабских чисел в Римские цифры Предлагаю "Запись арабских чисел римскими цифрами"
Возвращаемое значение, если оба параметра равны.
Найдите более элегантный способ для тестирования
#+ параметров, переданных в функцию.
"ВЫВОДЕ." Точка должна быть за кавычками
Перепишите сценарий так, чтобы... Первая запятая не нужна
Существует альтернативный, и, возможно, менее ...
Перенаправляется stdin блока кода, вложенного в функцию.
Продолжение следует...
Часть четвертая:
Переменная, объявленная как локальная, видна...
Теперь посмотрим, видна ли локальная переменная...
...в Bash переменная, объявленная внутри функции...
...становится локальной, *только* если это...
...все переменные, объявленные внутри неё, будут невидимы...
...не только к переменным, объявленным явным образом как локальные Снова как употребляется в смысле "в качестве"
...само-вызова... Без дефиса
Herbert Mayer См. выше
Рассматривается определение, сформулированное...
Сценарий, определяющий "рекурсию" в более наглядном виде.
Согласно Вебстерскому словарю 1913го издания. Предлагаю "Согласно словарю Вебстера 1913 года издания"
...но их использование пораждает порождает
Давайте на чистоту. начистоту
# Пусть функция делает что-нибудь до тех пор, пока не произойдёт ошибка сегментирования.
До тех пор, пока первый параметр меньше вторго,
возможно использование всей памяти, отведённой под стек.
18. sh -n scriptname проверяет наличие синтаксических ошибок без фактического запуска скрипта. Без запятой
19. Это эквивалентно набору -n или -о noexec в скрипте Очень грубый перевод. Лучше "Это эквивалентно вставке в сценарий команд set -n или set -o noexec"
20. Это эквивалентно вводу -v или -o в скрипт. То же самое. "Set" не надо тут переводить как "набор"
21. Я бы переводил не "флаги", а "ключи" командной строки
22. Это эквивалентно вводу -х или -o xtrace в скрипт. См. выше о set
23. Ввод -u или -o nounset запускает его См. выше о set
Продолжение следует...
Часть вторая
Использование функции «assert — объявить»
Предлагаю убрать "- объявить". Либо, в крайнем случае, поместить объяснение в скобки с замечанием "прим. перев."
Пример 29.4. Проверка условия с объявлением
Предлагаю "Проверка условия с использованием функции assert"
Использование переменной $LINENO и встроенного вызова.
Неточный перевод, на мой взгляд, лучше "Использование переменной $LINENO и встроенной команды caller".
Ловушка на выходе.
Команда выхода запускает сигнал 0, прекращая процесс, то есть сам скрипт. [110] Это часто полезно для ловушки выхода, например форсируя «распечатку» переменных. Ловушка должна быть первой командой в скрипте.
И этот перевод можно улучшить, как мне кажется. Как - чуть попозже, кое-что выясняю для себя.
trap - ловушка
trap (ловушка)
Определяет действия при получении сигнала
Сигнал - это сообщение, переданное процессу; ядро либо другой процесс передают его, чтобы совершить некоторые определенные действия (обычно для завершения процесса)
Например, нажатие Control-C отправляет сигнал прерывания INT к запущенной программе.
ловушка '' 2
#Игнорировать прерывание 2 (Control-C), когда действие не указано.
ловушка 'echo "Control-C disabled."' 2
#Сообщить, когда Control-C нажата.
trap здесь не переводится.
Trapping at exit
Упоминал выше, отпишусь позже.
команда ловушки
команда trap
на SMP box
на мультипроцессорной машине
ловушка '' SIGNAL
скрипта, ловушка SIGNAL
"ловушка" не переводится
защиты
ловушка '' 2 # Сигнал 2 Control-C, в настоящее время отключена.
команда
команда
команда
ловушка 2 # Reenables Control-C
"ловушка" не переводится
В версии 3 Bash ... в отладчике:
В третьей версии Bash
Количество аргументов командной строки, передающиеся скрипту, аналогична$#.
Последний параметр командной строки, передающийся в скрипт, эквивалентен ${!#}.
Массив переменных, связанный с оператором совпадения с шаблоном регулярного выражения =~
То же, что и $0.
Жду ваших исправлений или комментариев.
Немного запоздало, но ранее не получалось отписать объявление:
"Предполагаемая дата переезда на Mercurial - 20-21 апреля 2010 года (вторник-среда на будущей неделе). Просьба участникам проекта ничего не коммитить в эти дни. Дополнительная информация будет сообщена позднее."
Проект перешел на DVCS Mercurial. Вы можете получить клон репозитория вот так:
По причине внезапно наступившего отпуска написание сообщения о изменении рабочего процесса проекта bash-scripting.ru затянулось. Что же, пришло время написать об этом. Прежде всего упомяну, что порядок этот далеко не идеален и сложился прежде всего из обсуждения с idler'ом деталей. Если у вас (участников проекта) есть дельные предложения, добро пожаловать в джаббер-конференцию проекта.
В связи в переходом на меркуриал workflow пока будет выглядеть так:
,указывая в имени, часть какой главы переведена.
3. Далее переводим свою главу в соответствии с таблицей координации на сайте проекта
4. Допустим, мы перевели треть главы. Выполняем make в директории src.
5. Смотрим, применен ли патч в рабочей директории:
Код
text
hg qapplied
6. Допустим, перевели вторую треть главы. После успешного выполнения make обновляем наш примененный патч:
text
hg qrefresh
7. Закончили перевод оставшейся части. Снова после make обновляем патч:
text
hg qrefresh
8. Включаем расширение Patchbomb:
В файле ~/.hgrc прописываем:
hg email -a -r номер_ревизии -t dangerous3@yandex.ru
10. Я смотрю, если есть вопросы - задаю в форуме, обсуждаем
11. Если нужно, патч снова правится участником проекта, затем снова отсылается мне.
12. Я применяю патч и заливаю окончательный вариант на сервер проекта
Еще раз повторю: Если есть дополнения и улучшения - welcome.
Привет всем! В нашем проекте есть некоторые изменения. На странице проекта добавлен раздел для размещения ваших полезных shell-сценариев для самых разнообразных областей применения: