Пример 29-1. Сценарий, содержащий ошибку
Пример 29-1. Сценарий, содержащий ошибку
#!/bin/bash
# ex74.sh
# Этот сценарий содержит ошибку.
a=37
if [$a -gt 27 ]
then
echo $a
fi
exit 0
В результате исполнения этого сценария вы получите такое сообщение:
./ex74.sh: [37: command not found
Что в этом сценарии может быть неправильно (подсказка: после ключевого слова if)?
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Пример 2-1. cleanup: Сценарий очистки лог-файлов в /var/log
Пример 2-1. cleanup: Сценарий очистки лог-файлов в /var/log # cleanup# Для работы сценария требуются права root.cd /var/logcat /dev/null > messagescat /dev/null > wtmpecho "Лог-файлы очищены."Здесь нет ничего необычного, это простая последовательность команд, которая может быть набрана в командной строке с
Пример 11-23. Сценарий, завершающий себя сам с помощью команды kill
Пример 11-23. Сценарий, завершающий себя сам с помощью команды kill #!/bin/bash# self-destruct.shkill $$ # Сценарий завершает себя сам. # Надеюсь вы еще не забыли, что "$$" -- это PID сценария.echo "Эта строка никогда не будет выведена."# Вместо него на stdout будет выведено сообщение "Terminated".exit 0# Какой
Пример 33-6. Сценарий (бесполезный), который вызывает себя сам
Пример 33-6. Сценарий (бесполезный), который вызывает себя сам #!/bin/bash# recurse.sh# Может ли сценарий вызвать себя сам?# Да, но есть ли в этом смысл?RANGE=10MAXVAL=9i=$RANDOMlet "i %= $RANGE" # Генерация псевдослучайного числа в диапазоне 0 .. $MAXVAL.if [ "$i" -lt "$MAXVAL" ]then echo "i = $i" ./$0 # Сценарий запускает
Пример 33-7. Сценарий имеющий практическую ценность), который вызывает себя сам
Пример 33-7. Сценарий имеющий практическую ценность), который вызывает себя сам #!/bin/bash# pb.sh: телефонная книга# Автор: Rick Boivie# используется с его разрешения.# Дополнен автором документа.MINARGS=1 # Сценарию должен быть передан, по меньшей мере, один
Пример H-2. viewdata.sh: Результат преобразования VIEWDATA.BAT в сценарий командной оболочки
Пример H-2. viewdata.sh: Результат преобразования VIEWDATA.BAT в сценарий командной оболочки #!/bin/bash# Результат преобразования пакетного файла VIEWDATA.BAT в сценарий командной оболочки.DATAFILE=/home/bozo/datafiles/book-collection.dataARGNO=1# @ECHO OFF Эта команда здесь не нужна.if [ $# -lt "$ARGNO" ] # IF !%1==! GOTO VIEWDATAthen less
Где искать ошибку
Где искать ошибку Любое приложение, в котором производятся арифметические операции, подвержено этому греху, особенно когда некоторые входные данные поступают от пользователя и их правильность не проверяется. Особое внимание обращайте на вычисление индексов массивов и
Где искать ошибку
Где искать ошибку Любое приложение, обладающее перечисленными ниже характеристиками, подвержено риску внедрения SQL:? принимает данные от пользователя;? не проверяет корректность входных данных;? использует введенные пользователем данные для запроса к базе;? применяет
Где искать ошибку
Где искать ошибку Вот основные характерные признаки:? команды (или управляющая информация) и данные расположены друг за другом;? существует возможность, что данные будут интерпретироваться как команда, зачастую из–за наличия специальных символов, например кавычки и
Где искать ошибку
Где искать ошибку Так просто и не скажешь, нет характерных признаков. Самый эффективный способ – провести анализ
Где искать ошибку
Где искать ошибку Этот грех обычно проявляется, когда:? приложение пользуется сетью;? проектировщик не обращает внимания на риски, связанные с работой в сети, или недооценивает их.Например, типичный аргумент звучит так: «мы ожидаем, что этот порт будет доступен только из
Где искать ошибку
Где искать ошибку Искать нужно места в программе, где:? Web–приложение получает секретную информацию из формы или из URL;? для принятия решения о безопасности, доверии или авторизации используются данные;? данные передаются по незащищенному или не заслуживающему доверия