18.3.5. Проверка результата копирования файла
18.3.5. Проверка результата копирования файла
А теперь осуществим проверку того, успешно ли прошло копирование файла. Если команда cp не скопировала файл myfile в файл myfile.bak, отображается сообщение об ошибке. Обратите внимание, что в сообщении об ошибке фигурирует команда `basename $0` которая выводит на экран название сценария.
Если все сценарии завершаются ошибкой, желательно, чтобы наряду с указанием на стандартную ошибку отображалось и название сценария. В конце концов, пользователю важно знать название сценария, выполнение которого привело к появлению ошибки.
$ pg ifcp
#!/bin/sh
# ifcp
if cp myfile myfile.bak; then
echo "good copy"
else
echo "`basename $0`: error could not copy the files" >&2 fi
$ ifcp
cp: myfile: No such file or directory
ifcp: error could not copy the files
Обратите внимание на то, что в данном случае файл не может быть найден, и генерируется системное сообщение об ошибке. Ошибки такого типа могут негативно
отразиться на выводимых данных; сценарий уже отображает сообщения об ошибках, поэтому известно, что он функционирует неверно. Зачем же нам повторное уведомление? Чтобы избавиться от ошибок, генерируемых системой, и системных данных вывода, достаточно применить перенаправление стандартного потока ошибок и потока вывода. Для этого немного перепишем сценарий: > /dev/null 2>&1. В этом случае получим следующее:
$ pg ifcp
#!/bin/sh
# ifcp
if cp myfile myfile.bak >/dev/null 2>&1; then
echo "good copy"
else
echo "`basename $0`: error could not copy the files" >&2
fi
При выполнении сценария все выводимые данные, включая ошибки, направляются в системную корзину.
$ ifcp
ifcp: error could not copy the files
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Установка размера файла, инициализация файла и разреженные файлы
Установка размера файла, инициализация файла и разреженные файлы Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла
Элементы буквального результата
Элементы буквального результата Если элемент в теле шаблона не является инструкцией XSL или элементом расширения, процессор XSLT должен рассматривать его в качестве элемента буквального результата. Это означает, что элемент должен трактоваться буквально и копироваться в
Возврат результата потока
Возврат результата потока Выше отмечено, что вызов pthread_exit(), завершающий ожидаемый поток, может передать результат выполнения потока. То же действие может быть выполнено и оператором return потоковой функции, которая из прототипа ее определения должна возвращать значение
7. Программа на месяц до результата
7. Программа на месяц до результата Некий тренинг, который вы ведете лично. Четыре недели подряд обучаете вашего клиента, ведете его за руку до мастерства, задаете домашние задания, проверяете их. Это своего рода коучинговая программа. Возможно, в вашей сфере сработает
10.1.11. Проверка существования и получение размера файла
10.1.11. Проверка существования и получение размера файла Часто необходимо знать, существует ли файл с данным именем. Это позволяет выяснить метод exist? из модуля FileTest:flag = FileTest::exist?("LochNessMonster")flag = FileTest::exists?("UFO")# exists? является синонимом exist?Понятно, что такой метод не может быть
7. Когда требуется редактирование результата в fb2-редакторах
7. Когда требуется редактирование результата в fb2-редакторах 1. Когда вы хотите внести в полученный fb2 документ тэги и возможности, пока отсутствующие в конвертере (см. п.1.4.)2. Когда вы конвертировали документ с выключенной опцией «Обработка «проблемных» символов»: amp;, › и
Выполнение копирования
Выполнение копирования Для вызова gbak или перейдите в каталог Firebird /bin, где размещается gbak, или укажите для утилиты полный путь. Вся команда должна размещаться в одной строке. В описании синтаксиса и примерах логически замкнутые части команды представлены в виде отдельных
Переключатели копирования
Переключатели копирования В табл. 38.1 описаны переключатели, которые могут быть использованы в gbak при выполнении копирования.Таблица 38.1. Переключатели gbak для копирования Переключатель Эффект -b[ackup database] Утилита gbak выполняет копирование указанной базы данных в файл или
Литеральные элементы результата
Литеральные элементы результата Как мы уже видели из множества примеров, преобразования состоят не только из элементов языка XSLT. Например, в шаблоне<xsl:template match="b"> <В/></xsl:template>элемент B не принадлежит пространству имен XSLT и, следовательно, не считается
Защита от копирования
Защита от копирования Итак, прочитав эту книгу, вы решили создать свою собственную игру. На это у вас ушли месяцы. Когда вы закончили свой проект, получилась замечательная Flash-игра. Вы убеждены, что она станет суперпопулярной и сделает вас знаменитым.Вы разместили игру на
11.1.5. Проверка факта сортировки файла
11.1.5. Проверка факта сортировки файла Каким образом можно узнать, отсортирован ли данный файл? Если он содержит, например, около 30 строк, то достаточно его просмотреть. А если в нем 400 строк? Примените команду sort -c, которая сама определит, отсортирован ли файл:$ sort -с video.txtsort:
12.1.2. Сохранение выходного результата
12.1.2. Сохранение выходного результата Если нужно сохранить полученные результаты, следует переадресовать их в файл. В приведенном ниже примере выходной результат перенаправляется в файл с именем results.txt. В качестве входного используется файл oops.txt.$ tr -s "[a?z]" < oops.txt >
История с астрономией, или процесс важнее результата Дмитрий Вибе
История с астрономией, или процесс важнее результата Дмитрий Вибе Опубликовано 01 декабря 2013 После одной из недавних лекций я услышал упрёк, что слишком много внимания уделил истории вопроса, из-за чего у меня меньше времени осталось на описание
Обозначение результата функции
Обозначение результата функции Для понимания текстов функций rho, theta и distance в классе POINT необходимо еще одно соглашение.Любой язык программирования, поддерживающий функции (подпрограммы, возвращающие результат) должен предусматривать нотацию, позволяющую установить в
Присваивание функции результата
Присваивание функции результата Присваивание функции результата является интересной языковой проблемой, обсуждение которой было начато ранее в данной лекции. Стоит изучить ее подробнее ввиду ее важности и для языков, не использующих ОО-подход.Рассмотрим функцию -